android OkHttpUtils 使用JSON數據作為請求參數


本人開發的開發者技術變現資源聚集地,大家支持下,下面是網址

https://www.baiydu.com

 

 

 

如果就直接將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");

 

本人創業做的一款androidApp, 下載量已經有2000多萬,各種當前熱門的網絡手機獎勵紅包全部集成,另外還有熱門電影和淘寶高額優惠券!很適合各類型的用戶。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM