1
RoboSpice를 실행하는 데 필요한 간단한 데모가 있습니다.RoboSpice RequestProgress가 업데이트되었지만 requestSuccess가 호출되지 않았습니다.
github에서 발견되는대로 SpringAndroidContentService
까지 확장되는 기본 서비스입니다.
이상한 일은 요청을 보내면 Progress
이 업데이트되지만 결국에는 간단한 토스트 인 onRequestSuccess
으로 전화를받지 못합니다.
LogCat을 검사했는데 예외가 없습니다. 관련 코드는 다음과 같습니다.
/* RestContentRequest overrider */
@Override
public String loadDataFromNetwork() throws Exception {
RestTemplate restTemplate = getRestTemplate();
try {
String response= restTemplate.getForObject(
"http://xxx.xxx/mobile.html", String.class);
//does not get called
Log.d(LOGTAG, response);
return response;
} catch (HttpClientErrorException e) {
//Does not get called
Log.e(LOGTAG, e.toString());
return e.getLocalizedMessage();
}
}
private class RequestListener implements RequestListener<String>, RequestProgressListener {
@Override
public void onRequestFailure(SpiceException exception) {
//Does not get called
debug.setText(exception.getLocalizedMessage());
}
@Override
public void onRequestSuccess(String response) {
//Does not get called
Toast.makeText(LoginActivity.this, response, Toast.LENGTH_SHORT).show();
}
@Override
public void onRequestProgressUpdate(RequestProgress progress) {
//Gets called
debug.setText(convertProgressToString(progress));
}
private String convertProgressToString(RequestProgress progress) {
String status = "";
switch (progress.getStatus()) {
case READING_FROM_CACHE:
status = "? cache -->";
break;
case LOADING_FROM_NETWORK:
status = "^ network ^";
break;
case WRITING_TO_CACHE:
status = "--> cache";
break;
default:
status = "";
break;
}
return status;
}
}
무엇이 원인 일 수 있습니까? 단순히 문자열이있는 페이지를 읽어야합니다. (plain/text)
필자는 결국 Jackson 라이브러리에서 Gson 라이브러리로 이동하여이 문제를 해결했습니다. 문제가 RoboSpice 또는 Jackson 라이브러리 버전에 의존하는지 여부는 아직 알 수 없습니다. 최신 버전을 다운로드하고 알려 드리겠습니다. – tolgap
thx @tolgap. SOF보다 RoboSpice 문제 페이지를 사용하십시오. 그러나 어제 RoboSpice에 대한 첫 번째 Stack Over FLow 질문을 보는 것이 좋았습니다;) – Snicolas