Java 使用okHttp发出post请求
我使用okHttp和下一个代码发出post请求:Java 使用okHttp发出post请求,java,okhttp,Java,Okhttp,我使用okHttp和下一个代码发出post请求: final MediaType JSON = MediaType.get("application/json; charset=utf-8"); OkHttpClient client = new OkHttpClient(); RequestBody body = RequestBody.create(JSON, params); Request request = new Request.Builder()
final MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON, params);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = null;
response = client.newCall(request).execute();
服务器响应为:
response
{
message: {
user: {
id: 12,
name: 'myName'
},
message: 'Usuario creado con éxito.',
code: 200
}
}
但okHttp给我的回答是:
Response{protocol=http/1.1, code=200, message=OK, url=http://localhost:2222/api/users}
没有办法通过okHttp获取服务器发送给我的内容?如果响应是在正文中发送的,您可以通过以下方式获取:
response.body().string();
你只需要看电视就行了
“萨鲁德 如果在正文中发送响应,您可以通过以下方式获得:
response.body().string();
你只需要看电视就行了
“萨鲁德 您得到的是响应对象的标题。您可以通过以下方式访问响应正文:
response.body().string();
完整代码:
final MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON, params);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = null;
response = client.newCall(request).execute();
String responseBody = response.body().string();
您得到的是响应对象的标题。您可以通过以下方式访问响应正文:
response.body().string();
完整代码:
final MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON, params);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = null;
response = client.newCall(request).execute();
String responseBody = response.body().string();
response.body().string()
带“服务器发送的内容”是指http响应的内容(消息体)还是整个(原始)http响应?response.body().string()
带“服务器发送的内容”是指http响应的内容(消息体)还是整个(原始)http响应http响应?我尝试了一下,但是得到了okhttp3.internal.http。RealResponseBody@3f3d2bdaI假设您使用的是toString()
而不是string()
,这是ResponseBody
的一种方法。再次引用,我尝试了一下,但是得到了okhttp3.internal.http。RealResponseBody@3f3d2bdaI假设您使用的是toString()
而不是string()
,这是ResponseBody
的一种方法。再次引用我得到的okhttp3.internal.http。RealResponseBody@5da5c9d3通过response.body().string()我得到了okhttp3.internal.http。RealResponseBody@5da5c9d3带有response.body().string()