Express 3.0 を実行している Node.js サーバーを使用しています。
アプリケーションの一部で、json を URI に POST して、/api/transactions/powerup でパワーアップを購入します。これにはいくつかの返品オプションがあります。
トランザクションが有効であることを意味する 201 と、資金不足のためにリクエストが無効であることを示す 404 のいずれかを受け取ります。私の問題は、ResponseEntity にあるヘッダーのみに基づいて成功したかどうかを Android クライアントに伝えたい場合です。
クライアントに返されるjson はありません。HTTP コードが成功したかどうかを教えてくれるからです。誰もこれを行う方法を知っていますか?
PowerupPurchase purchase = new PowerupPurchase();
purchase.setPowerId(params[0]);
final String url = getString(R.string.external_api_url) + "/transactions/powers?apiKey="+mCurrentUser.getApiKey();
Log.i(TAG,url);
// create the headers
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
requestHeaders.setAcceptEncoding(ContentCodingType.GZIP);
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
// Create the Json that will be exchanged
HttpEntity<?> requestEntity = new HttpEntity<PowerupPurchase>(purchase, requestHeaders);
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
List<MediaType> mediaList = new LinkedList<MediaType>();
mediaList.add(new MediaType("application","octet-stream",Charset.forName("UTF-8")));
converter.setSupportedMediaTypes(mediaList);
restTemplate.getMessageConverters().add(converter);
try {
// Make the network request
ResponseEntity<?> response = restTemplate.postForEntity(url, requestEntity, Object.class);
// HOW DO I GET THE HEADERS??
response.getHeaders()
400 は、Spring Android で常にエラーをスローするようです とにかく、http ヘッダーを確認するだけで、戻りオブジェクト マップについて心配する必要はありませんか?