【问题标题】:How to Create RequestBody from JSONObject?如何从 JSONObject 创建 RequestBody?
【发布时间】:2017-07-11 05:52:36
【问题描述】:

我正在使用 okhttp3.RequestBody 向服务器发送请求, 如果我有 JSONObject 和我需要发送的数据 我正在编写这样的代码:

RequestBody requestBody = new MultipartBody.Builder()
                                .setType(MultipartBody.FORM)
                                .addFormDataPart("id", object.optLong(Comment.TASK_ID_JSON_TAG) + "")
                                .addFormDataPart("type", "IMAGE")
                                .addFormDataPart("latitude", object.optDouble(Comment.LATITUDE_JSON_TAG) + "")
                                .addFormDataPart("longitude", object.optDouble(Comment.LONGITUDE_JSON_TAG) + "")
                                .build();

现在如果我有包含大数据的 JSONObject,有没有办法直接创建 RequestBody?
感谢您的帮助。

【问题讨论】:

  • 请阅读:page1page2page3
  • 好的,我做到了,我的问题有什么问题?不清楚吗?
  • 是的,不清楚,我认为任何人都会理解您的需求。而是提供您的工作并说明您正在努力实现的目标
  • 我希望现在清楚了。

标签: android json retrofit2 okhttp3


【解决方案1】:

也许你可以在一个参数中发布所有 json 对象,并将其发送到服务器。

看看https://stackoverflow.com/a/34180100/1067963

public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  Response response = client.newCall(request).execute();
  return response.body().string();
}

【讨论】:

    【解决方案2】:

    您可以使用 gson 序列化 (gradle -> implementation group: 'com.google.code.gson', name: 'gson', version: '2.7' ) 然后执行此操作 --> 注意 MediaType 和 setbody 函数它只有 2 行代码:) 然后发送请求使用正文...如果你想发送java object as JSON 这样做

    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
    
    @Override
    protected void setBody() {
        Gson gson = new Gson();
        String data = gson.toJson(yourObject);
        body = RequestBody.create(JSON, data);
    
    }
    

    //然后你可以建立你的请求设置这个body ( RequestBody body )

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多