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を直接実行されます