首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在射击请求中发送基本的语音

在射击请求中发送基本的语音
EN

Stack Overflow用户
提问于 2016-09-05 09:18:41
回答 1查看 52关注 0票数 0

你好,我试图发送基本授权在截取请求。我差不多7-8个月前就试过了,效果不错.

但是,当我尝试发送带有授权头的请求时,我不知道出了什么问题,并且总是得到403个错误。当我试图点击hurl.it的url时,它工作得很好。有人能告诉我的要求有什么问题吗。

这就是我是如何在volley请求中添加授权头的

代码语言:javascript
复制
public class VolleyRequest extends JsonObjectRequest {

    String email, pass;
    boolean saveCookeis;

    public VolleyRequest(int method, String url, JSONObject jsonRequest,
                         Listener<JSONObject> listener, ErrorListener errorListener,
                         String email, String pass, boolean saveCookie) {
        super(method, url, jsonRequest, listener, errorListener);
        // TODO Auto-generated constructor stub
        this.email = email;
        this.pass = pass;
        this.saveCookeis = saveCookie;
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        // TODO Auto-generated method stub
        HashMap<String, String> params = new HashMap<String, String>();

        String auth = "";
        try {
            auth = android.util.Base64.encodeToString(
                    (this.email + ":" + this.pass).getBytes("UTF-8"),
                    android.util.Base64.DEFAULT);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        params.put("Authorization", auth);
        return params;
    }

    @Override
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
        // TODO Auto-generated method stub

        if (saveCookeis) {
            try {
                String jsonString = new String(response.data,
                        HttpHeaderParser.parseCharset(response.headers));

                ApplicationController.getInstance().checkSessionCookie(
                        response.headers);

                return Response.success(new JSONObject(jsonString),
                        HttpHeaderParser.parseCacheHeaders(response));

            } catch (UnsupportedEncodingException e) {
                return Response.error(new ParseError(e));
            } catch (JSONException je) {
                return Response.error(new ParseError(je));
            }
        }
        return super.parseNetworkResponse(response);

    }
}

邮递员截图

在这里可以找到样本数据

现在这段代码不起作用了。有人能告诉我我做错了什么吗。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-09-05 12:09:50

试试这个:

代码语言:javascript
复制
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, new JSONObject(), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
           //Handle response
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
         //Handle Error
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            return super.getParams();
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put(
                    "Authorization",
                    String.format("Basic %s", Base64.encodeToString(
                            String.format("%s:%s", username, password).getBytes(), Base64.DEFAULT)));
            return params;
        }
    };

    jsonObjectRequest.setShouldCache(false);
    requestQueue.add(jsonObjectRequest);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39327395

复制
相关文章

相似问题

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