RestTemplate送信要求のURLは、パーセント記号%をエスケープ

URL%でresteTemplateバンドが25%、アクセスできないリソースへの権利のようにエスケープされる場合

たとえばます。https://xxx.xxx.xx SIG = Tr5VnQ1enApvTxZJxsr99Bb5m%2BhM1%2FpSxXUOrmAVjN8%3D?

します。https://xxx.xxx.xx SIG = Tr5VnQ1enApvTxZJxsr99Bb5m%252BhM1%252FpSxXUOrmAVjN8%253Dそれはに変換されますか?

 

ソリューション

URIパラメータに文字列のURLパラメータ:

サンプルコード:

文字列のURL = "HTTPS:?//xxx.xxx.xx SIG = Tr5VnQ1enApvTxZJxsr99Bb5m%2BhM1%2FpSxXUOrmAVjN8%3D"。
		試す{ 
			//文字列将的URL转为URI对象
			URIのuri =新しいURI(URL); 
			HttpHeadersヘッダ=新しいHttpHeaders()。
			= restTemplate.exchange Oオブジェクト(
					URL、
					HttpMethod.GET、 	 
					新しいHttpEntityの<string>(ヘッダ)、
					String.class)。
		}キャッチ(URISyntaxException E){ 
			e.printStackTrace(); 
		}

することで
URIのuri =新しいURI(URL)
; 問題は解決

 

分析: 

交換法、例えば、他のgetForObject、getForEntity、postForObjectにRestTemplateなどは同じであり、

パラメータはString型のURLである場合は、excuteリクエストを送信する前に、それが最初であるURL URIタイプ、に文字列のURLを入力し、変換エラーは、このプロセスで発生します。

ソースとして、次のとおりです。

URIの型に変換される文字列のURLの必要性

URIタイプのURLを直接実行されます

 

 

おすすめ

転載: www.cnblogs.com/zhengy-001/p/11983630.html