2012-02-20 11 views
1

でエンコードされた文字私は、このようなコードを持っている:OpenConnectionメソッドは、URLの「%E9」の部分をsupressingされ、サーバが受信終わるようはHttpURLConnectionのとURL

URL url = new URL("http://foo.com/?param=paj%E9"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
... 

しかし、それはそうですリクエストhttp://foo.com?param=paj

これを正しく動作させるために別の設定を適用するのを忘れましたか?

ありがとうございます!

EDIT:URL「http://foo.com/?param=paj%E9」は既にエンコードされています(http://foo.com/?param =pajé)。これはサーバーが受け取るリクエストである必要があります。ブラウザから直接http://foo.com/?param=paj%E9にアクセスしようとすると、期待どおりに動作します。 "paj%E9"とURLエンコードすると、パラメータがダブルエンコードされ、サーバーは値をデコードする際に "paj%E9"と表示されます。 私は実際にプロキシを構築しようとしているので、すでにエンコードされたURLを受け取ります。問題は、HttpURLConnectionを使用してこのようなエンコードされたパラメータを要求すると、エンコードされた部分(%E9など)を無視するということです。

+1

あなたがURLに必要ではリクエストパラメータを符号化します。 – Zaki

答えて

-1

URLを独自に処理する代わりにエンコードするには、java.net.URIクラスを使用する必要があります。チェクこの: HTTP URL Address Encoding in Java

+0

私の編集をご覧ください。 –

-1

あなたが( "UTF-8"、 "中文")次のコード URLEncoder.encodeを使用することができます

関連する問題