次の方法で Java コードから URL を呼び出そうとしています。
userId = "Ankur";
template = "HelloAnkur";
value= "ParamValue";
String urlString = "https://graph.facebook.com/" + userId + "/notifications?template=" +
template + "&href=processThis.jsp?param=" + value + "&access_token=abc123";
これには次の問題があります。
- を実行すると、最初のアンパサンド ( ) までの値しかないことが
println(urlString)
わかります。つまり、次のように見えます:そして残りのすべて (あるべきだった) が切り取られます。それはなぜですか、また、完全な値を取得して保持するにはどうすればよいですか? Java 文字列でエスケープする必要がありますか? はいの場合、どのように行うのですか?urlString
&
https://graph.facebook.com/Ankur/notifications?template=HelloAnkur
&href=processThis.jsp?param=ParamValue&access_toke=abc123
urlString
&
- このクエリのパラメーター値として (相対) URL を渡そうとしていることに注意してください (
href
asの値processThis.jsp?param=ParamValue
。このタイプの値を、この URL ( )href
のクエリと混同せずに渡すにはurlString
3 つのパラメーターtemplate
,href
andaccess_token
? つまり、どのように非表示またはエスケープできますか? さらに?
、(スペースを使用して)だった場合は=
どうすればよいでしょうか?value
Param Value
template
に値があることに注意してくださいHelloAnkur
(スペースなし)。しかし、 のようにスペースを確保したい場合はHello Ankur
、どうすればよいでしょうか。のように書くべきでしょうかHello%20Ankur
?Hello Ankur
URL url = new URL(urlString)
作成できる、またはurl
経由で作成できるような方法でソリューションが必要URI
です。Java では安全な URL を作成するのは簡単ではないため、ここまでの回答を説明してください。
ありがとう!