在HTTP请求中传递整个JsonObject而不是RequestBody

时间:2018-01-01 07:37:55

标签: android json post okhttp

我正在创建Requestbody,为其添加必要的参数并请求POST的{​​{1}}方法。

但是,有没有办法传递整个OKHTTP而不是将单独的参数放到RequestBody的JsonObject

感谢。

3 个答案:

答案 0 :(得分:0)

为此,您必须构建jsonObject并在jsonObject方法中将rawString作为POST传递。

注意:“Google如何在POST方法中传递rawString android”

答案 1 :(得分:0)

要发送JSON对象请求,我们需要创建RequestBody对象并将其传递给Request Object。在RequestBody对象中,我们必须传递媒体类型并将数据作为字符串发布。

public static final MediaType MEDIA_TYPE = MediaType.parse("application/json");
JSONObject postdata = new JSONObject();
try {
 postdata.put("UserName", "Vishal");
 postdata.put("Email", "vishal@@##@gmail.com");
} catch(JSONException e){
 // TODO Auto-generated catch block
 e.printStackTrace();
}

RequestBody body = RequestBody.create(MEDIA_TYPE, postdata.toString());

final Request request = new Request.Builder()
.url("YOUR URL")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Your Token")
.addHeader("cache-control", "no-cache")
.build();

希望这会对你有所帮助。

答案 2 :(得分:0)

试试这个

OkHttpClient client = new OkHttpClient();
RequestBody formBody = new FormBody.Builder()
        .add("message", "Your message")
        .build();
Request request = new Request.Builder()
        .url("http://www.foo.bar/index.php")
        .post(formBody)
        .build();

try {
    Response response = client.newCall(request).execute();

    // Do something with the response.
} catch (IOException e) {
    e.printStackTrace();
}