天天看點

xUtils3.0發送post請求如何傳json的問題

今天在寫項目的時候需要發起一個post請求,項目用了xutils3.0作為網絡請求架構,post請求背景需要傳遞一條json字元串作為參數

根據以前的經驗隻要寫

RequestParams requestParams=new RequestParams();

requestParams.addBodyParameter("json",paramJSON);      
就可以實作了(額,什麼鬼?第一次寫部落格複制一下代碼這裡竟然變成黑色背景了,算了不管了)      
然而今天是第一次用3.0發現這樣寫不行,度了好多寫法也沒有什麼卵用,最後各種實驗發現如下方法:      
RequestParams requestParams = new RequestParams("http://www.xxx.com");
requestParams.setAsJsonContent(true);
requestParams.setBodyContent("{\"username\":\"test\",\"password\":\"test\"}");      
經測試可以,記錄一下為遇到相同問題的小夥伴們提供參考

額額,有幾位朋友私信我,因為大周末沒有看部落格,現在統一貼出完整步驟,實在不好意思啊~~~~~

xUtils3.0發送post請求傳json參數完整步驟:

JSONObject js_request = new JSONObject();//伺服器需要傳參的json對象
js_request.put("key", value);//根據實際需求添加相應鍵值對
js_request.put("key1", value1);
js_request.put("key2", value2);

RequestParams params = new RequestParams("http://www.baidu.com");
params.setAsJsonContent(true);
params.setBodyContent(js_request.toString());

x.http().post(params, new Callback.CacheCallback<String>() {//發起傳參為json的post請求,
                                                           // Callback.CacheCallback<String>的泛型為背景傳回資料的類型,
                                                           // 根據實際需求更改
    @Override
    public boolean onCache(String result) {
        return false;
    }

    @Override
    public void onSuccess(String result) {
        
        //此處請求成功後的邏輯

    }

    @Override
    public void onError(Throwable ex, boolean isOnCallback) {

    }

    @Override
    public void onCancelled(CancelledException cex) {

    }

    @Override
    public void onFinished() {

    }
});