天天看点

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() {

    }
});