我在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;
答案 0 :(得分:1)
您错过了JSON
引用的声明:
public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");
来自the documentation中的示例代码:
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()
来查看the documentation for this method,在那里您可以看到第一个参数是MediaType引用:
public static RequestBody create(MediaType contentType, 字符串内容)
返回传输内容的新请求正文。如果contentType为非null且缺少字符集, 这将使用UTF-8。