我想使用Spring的GET請求。春天:沒有合適的消息轉換器
我的主類:
final String url = getString(R.string.myurl);
// Populate the HTTP Basic Authentitcation header with the username and password
String Usn = "username";
String ww = "password";
HttpAuthentication authHeader = new HttpBasicAuthentication(Usn, ww);
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAuthorization(authHeader);
requestHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
System.out.println("Headers: " + requestHeaders.toString());
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
try {
// Make the network request
Log.d(TAG, url);
ResponseEntity<CatMessage> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<Object>(requestHeaders), CatMessage.class);
System.out.println(response.toString());
} catch (HttpClientErrorException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
}
}
隨着CatMessage類:
public class CatMessage {
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String message;
public int code;
}
什麼,我應該回去,因爲我用不工作的用戶名和密碼組合(這服務器的一部分工作正常)是:
{
"message": "You are not authorized to use this service", "code": 5201
}
我想這應該工作,因爲我幾乎複製了基本身份驗證project of Spring for Android
但發生的事情是與解析(我覺得)有問題。當然,我已經包含了Jackson和Spring的依賴關係,所以我不希望我的問題在那裏。但我期望一個非常小的JSON,有一個它的良好映射模型(CatMessage),並有我的傑克遜文件,所以我認爲這應該工作...但我得到以下錯誤:
02-22 00:13:42.977:E/AndroidRuntime(2052):引起: org.springframework.web.client.RestClientException:無法提取 響應:找不到合適的響應類型HttpMessageConverter [org.springframework.android.basicauth。 CatMessage]和內容類型 [text/html] 02-22 00:13:42.977:E/AndroidRuntime(2052):at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:79) 02- 22 00:13:42.977:E/Andro idRuntime(2052):在 org.springframework.web.client.RestTemplate $ ResponseEntityResponseExtractor.extractData(RestTemplate.java:655) 02-22 00:13:42.977:E/AndroidRuntime(2052):在 org.springframework。 web.client.RestTemplate $ ResponseEntityResponseExtractor.extractData(RestTemplate.java:641) 02-22 00:13:42.977:E/AndroidRuntime(2052):at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java :484) 02-22 00:13:42.977:E/AndroidRuntime(2052):at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439) 02-22 00:13:42.977: E/AndroidRuntime(2052):at rg.springframework.web.client.RestTemplate.exchange(RestTemplate.java:415)
有沒有人有我的問題可能的想法?它很難工作幾個小時似乎很容易... 謝謝!
我認爲我的內容類型很好:Content-Type:application/json。有沒有辦法,我可以打印請求之前,它被分析成一個對象?所以我可以檢查我的JSON是否真的是我期望的?每當我在瀏覽器中拋出URL時,它就會給出我發佈的JSON ... – Jasper 2013-02-22 08:39:54
這不是解析的請求,而是響應。最簡單的方法是調試它。 – 2013-02-22 09:56:10
是的,我的意思是迴應,在我上面的評論中。我沒有得到它的工作來調試響應,我正在使用一個設備,而不是一個模擬器...你知道任何其他方式嗎?謝謝。 – Jasper 2013-02-22 10:37:01