springbootはrestit Templateを使って簡単に使います。
1918 ワード
ポスト提出は
第一種類:formdata形式で、headerパラメータの中で直接にpayloadを見ることができます。json形式のpostに包装します。これを取得したら、実体に解析する必要があります。
第二の種類:restTemplate post jsonフォーマットはアリババのjsonバッグ
FormData
とPayload
の2つの形態がある。第一種類:formdata形式で、headerパラメータの中で直接にpayloadを見ることができます。json形式のpostに包装します。これを取得したら、実体に解析する必要があります。
第二の種類:restTemplate post jsonフォーマットはアリババのjsonバッグ
com.alibaba.fastjson
コードdemoを使用しております。url='http://posturl';
JSONObject postData = new JSONObject();
postData.put("shopid", 1);
JSONObject json = restTemplate.postForEntity(url, postData, JSONObject.class).getBody();
post formdata形式を使用するにはRestTemplate
を使用してmultipart/form-data
フォーマットのデータを送信する必要がある。RestTemplate restTemplate = new RestTemplate();
MultiValueMap map = new LinkedMultiValueMap<>();
map.add("merchantCode", merchantCode);
map.add("offLineList", JSON.toJSONString(params.getOffLineList()));
map.add("timestamp", String.valueOf(params.getTimestamp()));
map.add("sign", params.getSign());
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity> request = new HttpEntity>(map, headers);
headerに対して要求ヘッドの設定を行います。設定しなくても直接postは以下の通りです。String url = 'http://posturl';
MultiValueMap map = new LinkedMultiValueMap<>();
map.add("merchantCode", merchantCode);
map.add("offLineList", JSON.toJSONString(params.getOffLineList()));
map.add("timestamp", String.valueOf(params.getTimestamp()));
map.add("sign", params.getSign());
HttpEntity> request = new HttpEntity>(map, headers);
return ResponseEntity paymentResult = restTemplate.postForEntity(url , request, String.class);