2
私はPOSTフォームリクエストを作っていたコードを次のようしています。要求本体には、ユーザー名とパスワードが含まれています。パスワードに@文字が含まれています。これはRestTemplateが%40で置き換えられました。パスワードが間違っているため、「許可されていません」というエラーが表示されます。続き はここbufferOutput(リクエストボディ)POSTリクエストを行うときにSpring RestTemplateでフォームの本体文字をエスケープしない方法は?
merchant_id=firstname+de-lastname%40gmail.com&password=%40Password
からデバッグ情報が呼び出しを行っているコードスニペットです。
MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>();
String url = "SOME_URL";
formData.add("username", "[email protected]");
formData.add("password", "@name321");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String,String>> requestEntity = new HttpEntity<MultiValueMap<String,String>>(formData,headers);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
restTemplate.exchange(url, HttpMethod.POST, requestEntity, Authentication.class,"321");
質問は、身体データをエスケープしないrestTemplateを伝えるためにどのようにでしょうか?リクエストがPOSTフォームリクエストである必要があり、私は問題を解決するためにUriComponentsBuilderを使用できないこと 注意。
どこ残りのテンプレートの呼び出しがありますか? – Coder
が不足しているコール – amjad
を追加するには、URLがエンコードされています? – Coder