0
나는 아래의 예제가 OKHttp
과 함께 HTTP POST 메시지를 보내고 있음을 발견했다.본문을 OKHttp 메시지에 전달하는 방법은 무엇입니까?
본문 문자열을 RequestBody
으로 전달하는 방법을 모르겠다. 왜 두 가지 논쟁이 필요합니까?
RequestBody formBody = new FormBody.Builder()
.add("message", "Your message")
.build();
Request request = new Request.Builder()
.url("http://rhcloud.com")
.post(formBody).addHeader("operation", "modifyRecords")
.build();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);
Headers responseHeaders = response.headers();
for (int i = 0, size = responseHeaders.size(); i < size; i++) {
System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
}
System.out.println(responseBody.string());
}
}
});
}
}
:
어쨌든 나는 this 예를 들어 문자열을 게시하는 방법을 명확 방법을 보여줍니다 생각합니다. 어떤'MediaType'을 설정해야합니까? –
나는 이것을 다음과 같이 생각한다 : http://stackoverflow.com/questions/34179922/okhttp-post-body-as-json 도움이 될 수있다. 이 게시물의 저자는 해결책을 추가했습니다. 나는 오랫동안 OkHttp로 일하지 않았다. 어쨌든 MediaType은 application/json이어야합니다. – Brudus
올바른 줄은 'RequestBody formBody = RequestBody.create (MediaType.parse ("application/json"), "[\"MB \ ", [], []]"); ' –