2013-02-11 120 views
0

我必須在Java中的http請求中編碼查詢字符串值。例如:http查詢字符串值的編碼

http://mysite.com/service?name=James史密斯&地址=我的街道

必須成爲:

http://mysite.com/service?name=James%20Smith&address=my%20street

我不得不這樣做在我在輸入查詢字符串值的方法,所以我必須只編碼價值(James Smith,我的街道,等等)。我正在考慮使用這個方法org.apache.commons.httpclient.util.URIUtil.encodeWithinQuery:這是正確的嗎?我看到許多關於編碼http請求的混淆討論。

回答

0

您可以在此討論了進一步的解釋進行urlencode與

yourNewURL = java.net.URLEncoder.encode(oldurl.toString(), "ISO-8859-1").replace("+", "%20")); 

看的網址:

URLEncoder not able to translate space character

+0

這種方法與 「+」 代替空格,而不是用 「%20」 – Teo 2013-02-12 07:55:12

+0

添加了一個小訣竅;) – 2013-02-12 08:12:58

+0

但是,我不確定是否必須使用application/x-www-form-urlencoded或RFC-3986進行編碼。如果我查看http://www.w3schools.com/TAGS/ref_urlencode.asp並嘗試「自己嘗試」一節,空格替換爲「+」。 – Teo 2013-02-13 15:26:46