次の方法で 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=abc123urlString& - このクエリのパラメーター値として (相対) URL を渡そうとしていることに注意してください (
hrefasの値processThis.jsp?param=ParamValue。このタイプの値を、この URL ( )hrefのクエリと混同せずに渡すにはurlString3 つのパラメーターtemplate,hrefandaccess_token? つまり、どのように非表示またはエスケープできますか? さらに?、(スペースを使用して)だった場合は=どうすればよいでしょうか?valueParam Value templateに値があることに注意してくださいHelloAnkur(スペースなし)。しかし、 のようにスペースを確保したい場合はHello Ankur、どうすればよいでしょうか。のように書くべきでしょうかHello%20Ankur?Hello AnkurURL url = new URL(urlString)作成できる、またはurl経由で作成できるような方法でソリューションが必要URIです。Java では安全な URL を作成するのは簡単ではないため、ここまでの回答を説明してください。
ありがとう!