Retrofit을 Volley와 비교하기 위해 테스트 중이며 내 요청에 대한 응답을 얻기 위해 고군분투하고 있습니다. 예를 들어 다음과 같이합니다.
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://localhost:8080")
.build();
MyService service = restAdapter.create(MyService.class);
service.getToto("toto", new Callback<Toto>() {
@Override
public void success(Toto toto, Response response) {
// Try to get response body
BufferedReader reader = null;
StringBuilder sb = new StringBuilder();
try {
reader = new BufferedReader(
new InputStreamReader(response.getBody().in()));
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
String result = sb.toString();
}
@Override
public void failure(RetrofitError error) {}
});
작동하고 객체 toto
가 설정되었지만 테스트 목적으로 서버에서 반환 한 JSON 응답도 표시하고 싶습니다.
내가 읽으려고하고 그래서 InputStream
에서 response.getBody()
이다 TypedInputStream
. 불행히도 나는 항상 IOException : Stream is closed
.
Retrofit 의 Utils 클래스 를 사용하려고했지만 동일한 IOException
오류가 발생합니다.
콜백의 꺾쇠 괄호 안에 "Response"를 쓴 다음이 응답에서 스트림을 추출합니다.
service.getToto("toto", new Callback<Response>() {
@Override
public void success(Response result, Response response) {
//Try to get response body
BufferedReader reader = null;
StringBuilder sb = new StringBuilder();
try {
reader = new BufferedReader(new InputStreamReader(result.getBody().in()));
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
String result = sb.toString();
}
@Override
public void failure(RetrofitError error) {
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다