Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中无法在截击中附加带有post请求的标题_Android_Json_Error Handling_Http Headers_Android Volley - Fatal编程技术网

在android中无法在截击中附加带有post请求的标题

在android中无法在截击中附加带有post请求的标题,android,json,error-handling,http-headers,android-volley,Android,Json,Error Handling,Http Headers,Android Volley,我正在使用volley库访问一个web服务。在这个库中,我需要附加头来发布请求,但在点击web服务时出现错误,即“onErrorResponse:null” //代码 JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, url, new Response.Listener<JSONObject>() {

我正在使用volley库访问一个web服务。在这个库中,我需要附加头来发布请求,但在点击web服务时出现错误,即“onErrorResponse:null”

//代码

       JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    Log.e("response", response.toString());
                    pDialog.hide();

                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: " + error.getMessage());
            Toast.makeText(getActivity(), R.string.txt_error_occured, Toast.LENGTH_LONG).show();
            pDialog.hide();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("policyNo", policyNo);
            return params;
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> params = new HashMap<String, String>();
            params.put("Content-Type", "application/x-www-form-urlencoded");
            params.put("Content-Type", "application/json; charset=utf-8");
            params.put("User-agent", "My useragent");
            return params;
        }

    };
JsonObjectRequest-jsonObjReq=新的JsonObjectRequest(Request.Method.POST,
网址,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
Log.e(“response”,response.toString());
pDialog.hide();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
e(“错误:+Error.getMessage());
Toast.makeText(getActivity(),R.string.txt_出错,Toast.LENGTH_LONG).show();
pDialog.hide();
}
}) {
@凌驾
受保护的映射getParams(){
Map params=新的HashMap();
参数put(“policyNo”,policyNo);
返回参数;
}
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap params=新的HashMap();
参数put(“内容类型”、“应用程序/x-www-form-urlencoded”);
参数put(“内容类型”,“应用程序/json;字符集=utf-8”);
参数put(“用户代理”、“我的用户代理”);
返回参数;
}
};
//将请求添加到请求队列
AppController.getInstance().addToRequestQueue(jsonObjReq,tag_json_obj)

有必要使用截击吗?你可以改成改装而不是。As是最好、最快的网络图书馆之一

我在1.5年前使用过这段代码,但在主体内部发送了j=raw json,并且工作得非常好。请检查一下这个

    public void updateUserData(final String jsonObject) {
        // Tag used to cancel the request
        showProgressDialog();
        String tag_string_req = "string_req";
        String url = Const.UPDATE_USER_HISTORY;


        final StringRequest strReq = new StringRequest(Request.Method.POST,
                url, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                hideProgressDialog();
                Log.d(TAG, response.toString());

                FragmentManager fm = getActivity().getSupportFragmentManager();
                FragmentTransaction transaction = fm.beginTransaction();
                if (offer) {
                    Intent intent = new Intent(getActivity(), TabsActivity.class);
                    getActivity().startActivity(intent);
                    getActivity().finish();
                } else {
                    fm.popBackStack("quiz2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    fm.popBackStack("quiz1", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    fm.popBackStack("app", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                }
//                transaction.commit();
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hideProgressDialog();
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> header = new HashMap<>();
                header.put("Content-Type", "application/json; charset=utf-8");
                return header;
            }


            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }

            @Override
            public byte[] getBody() throws AuthFailureError {
                try {
                    return jsonObject.getBytes("utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                return null;
            }

        };

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
    }
public void updateUserData(最终字符串jsonObject){
//用于取消请求的标记
showProgressDialog();
String tag_String_req=“String_req”;
字符串url=Const.UPDATE\u USER\u HISTORY;
final StringRequest strReq=新StringRequest(Request.Method.POST,
url,新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
hideProgressDialog();
Log.d(TAG,response.toString());
FragmentManager fm=getActivity().getSupportFragmentManager();
FragmentTransaction=fm.beginTransaction();
如果(报价){
Intent Intent=新的Intent(getActivity(),TabsActivity.class);
getActivity().startActivity(意图);
getActivity().finish();
}否则{
fm.popBackStack(“quiz2”,FragmentManager.POP_BACK_STACK_包括在内);
fm.popBackStack(“quiz1”,FragmentManager.POP_BACK_STACK_包括在内);
fm.popBackStack(“app”,FragmentManager.POP_BACK_STACK_,包括在内);
}
//commit();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
d(标记“Error:+Error.getMessage());
hideProgressDialog();
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map header=newhashmap();
header.put(“内容类型”,“应用程序/json;字符集=utf-8”);
返回头;
}
@凌驾
公共字符串getBodyContentType(){
返回“application/json;charset=utf-8”;
}
@凌驾
公共字节[]getBody()抛出AuthFailureError{
试一试{
返回jsonObject.getBytes(“utf-8”);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
返回null;
}
};
//将请求添加到请求队列
AppController.getInstance().addToRequestQueue(streq,标记字符串请求);
}

有必要使用截击吗?你可以改成改装而不是。As是最好、最快的网络图书馆之一

我在1.5年前使用过这段代码,但在主体内部发送了j=raw json,并且工作得非常好。请检查一下这个

    public void updateUserData(final String jsonObject) {
        // Tag used to cancel the request
        showProgressDialog();
        String tag_string_req = "string_req";
        String url = Const.UPDATE_USER_HISTORY;


        final StringRequest strReq = new StringRequest(Request.Method.POST,
                url, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                hideProgressDialog();
                Log.d(TAG, response.toString());

                FragmentManager fm = getActivity().getSupportFragmentManager();
                FragmentTransaction transaction = fm.beginTransaction();
                if (offer) {
                    Intent intent = new Intent(getActivity(), TabsActivity.class);
                    getActivity().startActivity(intent);
                    getActivity().finish();
                } else {
                    fm.popBackStack("quiz2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    fm.popBackStack("quiz1", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    fm.popBackStack("app", FragmentManager.POP_BACK_STACK_INCLUSIVE);
                }
//                transaction.commit();
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hideProgressDialog();
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> header = new HashMap<>();
                header.put("Content-Type", "application/json; charset=utf-8");
                return header;
            }


            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }

            @Override
            public byte[] getBody() throws AuthFailureError {
                try {
                    return jsonObject.getBytes("utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                return null;
            }

        };

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
    }
public void updateUserData(最终字符串jsonObject){
//用于取消请求的标记
showProgressDialog();
String tag_String_req=“String_req”;
字符串url=Const.UPDATE\u USER\u HISTORY;
final StringRequest strReq=新StringRequest(Request.Method.POST,
url,新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
hideProgressDialog();
Log.d(TAG,response.toString());
FragmentManager fm=getActivity().getSupportFragmentManager();
FragmentTransaction=fm.beginTransaction();
如果(报价){
Intent Intent=新的Intent(getActivity(),TabsActivity.class);
getActivity().startActivity(意图);
getActivity().finish();
}否则{
fm.popBackStack(“quiz2”,FragmentManager.POP_BACK_STACK_包括在内);
fm.popBackStack(“quiz1”,FragmentManager.POP_BACK_STACK_包括在内);
fm.popBackStack(“app”,FragmentManager.POP_BACK_STACK_,包括在内);
}
//commit();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
d(标记“Error:+Error.getMessage());
高压
@Throws(AuthFailureError::class)
fun getHeaders(): Map<String, String>? {
    val header: MutableMap<String, String> = HashMap()
    header["Content-Type"] = "application/json; charset=utf-8"
    return header
}