0

我在 android 中遇到 JSON 和 okhttp 这个问题。谁能指出我正确的方向?我是新手,所以任何帮助都可以。

在此处输入图像描述

这是我的进口:

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONException;
import org.json.*;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.MediaType;
4

1 回答 1

1

您缺少 JSON引用的声明:

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

文档中的示例代码:

public class PostExample {
  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();
  }
}

请注意,查看您正在使用的代码的文档总是一个好主意,在这种情况下,您正在调用RequestBody.create()您可以查看此方法的文档,您可以在其中看到第一个参数是 MediaType 引用:

public static RequestBody create(MediaType contentType, String content)

返回传输内容的新请求正文。如果 contentType 为非 null 且缺少字符集,则将使用 UTF-8。

于 2016-03-31T18:49:35.627 回答