android OkHttpUtils 使用JSON数据作为请求参数

Posted 日魂月魄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android OkHttpUtils 使用JSON数据作为请求参数相关的知识,希望对你有一定的参考价值。

如果就直接将JSON作为请求字符串,服务端会出现中文乱码。所以只需要将请求的整个JSON参数字符串编码一次,然后服务端解码一次。我这里服务端使用的servlet,下面会两段代码贴出。

android:

                    String url = customSessionSingleton.getInstance().requestBaseUrl+"AlipayInterface";
                    try {
                        OkHttpUtils.post().url(url).addParams("masterParameter", URLEncoder.encode(passSessionData.toString(), "UTF-8")) .build().execute(new StringCallback() {
                            @Override
                            public void onBefore(Request request, int id) {

                            }
                            @Override
                            public void onAfter(int id) {

                            }
                            @Override
                            public void onError(Call call, Exception e, int id) {
                                e.printStackTrace();
                                String json=  e.getMessage();
                            }
                            @Override
                            public void onResponse(String response, int id) {
                                JSONObject    returnJSONObject = null;
                                try {
                                    returnJSONObject=new JSONObject(response) ;

                                    if(returnJSONObject.getInt( "Success" )==1)
                                    {
                                        if(payWay.equals( "支付宝" )) {


                            serverSignStr=serverSignStr+"&sign=" + returnJSONObject.getString( "sign" );

                                        Runnable payRunnable = new Runnable() {

                                            @Override
                                            public void run() {
                                                PayTask alipay = new PayTask(HomeFragment_RechargeActivity.this);
                                                Map<String, String> result = alipay.payV2(serverSignStr, true);
                                                Log.i("msp", result.toString());

                                                Message msg = new Message();
                                                msg.what = SDK_PAY_FLAG;
                                                msg.obj = result;
                                                alipayHandle.sendMessage(msg);
                                            }
                                        };

                                        Thread payThread = new Thread(payRunnable);
                                        payThread.start();

                                        }
                                        else if(payWay.equals( "微信" ))
                                        {


                                        }
                                        else if(payWay.equals( "全积分抵扣" ))
                                        {

                                         Dialog alertDialog = new AlertDialog.Builder(HomeFragment_RechargeActivity.this).
                                    setTitle("登录用户,全积分抵扣").
                                    setMessage("全积分抵扣").
                                    setIcon(R.drawable.ic_launcher).
                                    create();
                            alertDialog.show();

                                                mLoading.dismiss();


                                        }
                                    }
                                    else
                                    {

                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }






                            }
                        });
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }

 

Servlet:

    JSONObject    requestObject=new JSONObject(URLDecoder.decode(request.getParameter("masterParameter"),"utf-8"));
               String account= requestObject.getString("account");

 

以上是关于android OkHttpUtils 使用JSON数据作为请求参数的主要内容,如果未能解决你的问题,请参考以下文章

Android 网络请求框架okhttputils报错(okhttp3找不到)

okhttputils Android 一个改善的okHttp封装库使用

毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

Android开发复用代码

okhttputils怎么在全局配置里添加请求头