1
I 설치 다음과 같이 HttpServletResponse를에 HttpServletRequest의 몸을 쓰는 간단한 부두 서블릿과 부두 서버 (v9.3.0.M0) :OkHttp 클라이언트 호출을 올바르게 지정하는 방법은 무엇입니까?
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
public class SimpleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = request.getReader();
try {
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line).append('\n');
}
} finally {
reader.close();
}
String testString = stringBuilder.toString();
response.getWriter().println(testString);
}
}
내가 지정하고 JettyCient (v9.3.0을 실행합니다. M0)은 다음과 같이 비슷합니다 :
완벽하게 실행됩니다. 즉 서버가 의도 한대로 응답하고 "this is a test"라고 씁니다.
import com.squareup.okhttp.*;
import java.io.IOException;
public class OkHttpClient {
public static void main(String[] args) throws IOException {
com.squareup.okhttp.OkHttpClient client = new com.squareup.okhttp.OkHttpClient();
RequestBody body = RequestBody.create(MediaType.parse("text/plain; charset=utf-8"), "this is a test");
Request request = new Request.Builder()
.url("http://localhost:8083/hello")
.post(body)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().toString());
}
}
나는 빈 몸으로 끝낼 : 나는 많은이 같은 OkHttpClient (V2.0.0)를 지정
. 따라서 시체가 서버에 도착하지 않는 것처럼 보입니다. 여기에 중요한 것을 놓치지 않습니까?
감사합니다. 제시는 아직 작동하지 않습니다. 즉, 다시 빈 몸통을 얻습니다. –
최근이 문제에 직면했습니다. 그러나 포스트 응답 상태 코드가 200이면 응답 본문 메시지를받을 수 있습니다. 하지만 응답 상태 코드가 200 (404,500 등)이 아닌 경우 본문 메시지를 수신 할 수 없습니다. @ StefanSchröder가 문제를 파악할 수 있었습니까? 미리 감사드립니다. –