GEThttpリクエストにSpringを使用しようとしています。
私のメインクラス:
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
}
Spring for Androidの基本認証プロジェクトをほぼコピーしているので、これでうまくいくと思いました
しかし、何が起こるかは構文解析の問題です(私は思います)。もちろん、JacksonとSpringの依存関係を含めたので、問題が発生することはないと思います。しかし、私は非常に小さなJSONを期待し、そのモデル(CatMessage)を適切にマッピングし、Jacksonファイルを含めているので、これでうまくいくと思いました...しかし、以下のエラーが発生します:
02-22 00:13:42.977:E / AndroidRuntime(2052):原因:org.springframework.web.client.RestClientException:応答を抽出できませんでした:応答タイプ[org.springframework.android.basicauthに適切なHttpMessageConverterが見つかりません。 CatMessage]およびコンテンツタイプ[text/html] 02-22 00:13:42.977:E / AndroidRuntime(2052):org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:79)02-22 00: 13:42.977:E / AndroidRuntime(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):org.springframework.web.clientで。RestTemplate.doExecute(RestTemplate.java:484)02-22 00:13:42.977:E / AndroidRuntime(2052):org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)02-22 00: 13:42.977:E / AndroidRuntime(2052):at o rg.springframework.web.client.RestTemplate.exchange(RestTemplate.java:415)
誰かが私の問題がどこにあるのか考えていますか?とても簡単に思える何かに何時間も取り組むのは大変です...ありがとう!