首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android-Volley JSONObjectRequest返回401错误

android-Volley JSONObjectRequest返回401错误
EN

Stack Overflow用户
提问于 2015-06-13 07:34:35
回答 1查看 1.3K关注 0票数 0

我正试图向服务器发送一个带有参数的帖子请求。但是post参数总是空的。

我尝试过stackoverflow的几种解决方案,但没有奏效。

我得到了意外响应代码401用于11 11.urlname

代码语言:javascript
复制
Map<String, String> jsonParams = new HashMap<String, String>();
jsonParams.put("username", "test@mail.com");
jsonParams.put("usertype", "userType");
jsonParams.put("apikey", "key");

JsonObjectRequest myRequest = new JsonObjectRequest(Request.Method.POST,apiURL, new JSONObject(jsonParams),

    new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            try {
                String status=response.getString("status");

                if (status.equals("success"))
                {
                    txtResponse.setText("Valid user");
                }
                else {
                    txtResponse.setText("InValid USer");
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    },
    new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    }) {

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "application/json; charset=UTF-8");
        return headers;
    }
};
AppController.getInstance().addToRequestQueue(myRequest, "tag");

我的应用程序控制器代码是

代码语言:javascript
复制
public class AppController extends Application {
    public static final String TAG = AppController.class.getSimpleName();

    private RequestQueue mRequestQueue;

    private static AppController mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public static synchronized AppController getInstance() {
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        return mRequestQueue;
    }

    public <T> void addToRequestQueue(Request<T> req, String tag) {
        req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
        getRequestQueue().add(req);
    }

    public <T> void addToRequestQueue(Request<T> req) {
        req.setTag(TAG);
        getRequestQueue().add(req);
    }

    public void cancelPendingRequests(Object tag) {
        if (mRequestQueue != null) {
            mRequestQueue.cancelAll(tag);
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-26 02:38:54

如果您的问题尚未解决,可以参考以下代码来构建请求主体(params)

代码语言:javascript
复制
    private String buildRequestBody(Object content) {
        String output = null;
        if ((content instanceof String) ||
                (content instanceof JSONObject) ||
                (content instanceof JSONArray)) {
            output = content.toString();
        } else if (content instanceof Map) {
            Uri.Builder builder = new Uri.Builder();
            HashMap hashMap = (HashMap) content;
            if (isValid(hashMap)) {
                Iterator entries = hashMap.entrySet().iterator();
                while (entries.hasNext()) {
                    Map.Entry entry = (Map.Entry) entries.next();
                    builder.appendQueryParameter(entry.getKey().toString(), entry.getValue().toString());
                    entries.remove(); // avoids a ConcurrentModificationException
                }
                output = builder.build().getEncodedQuery();
            }
        }

        return output;
    }

然后..。

代码语言:javascript
复制
    Map<String, String> stringMap = new HashMap<>();    
    stringMap.put("username", "yourusername");
    stringMap.put("password", "yourpassword");
    ...
    String requestBody = buildRequestBody(stringMap);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30816244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档