2

URLパラメータの一部をJAVAでエンコードしたい

http://statebuild-dev.com/iit-title/size.xml?id=(102T OR 140T)

http://statebuild-dev.com/iit-title/size.xml?id=(102%20OR%20140)

URIを使用してエンコードしようとしましたが、エンコードもしますか? 私はしたくない。URLの「=」以降の部分をエンコードしたい

URI uri = new URI("http", 
    "statebuild-dev.com/iit-title", "/size.xml?id=(102 OR 140)", null);
//URL url = uri.toURL();
System.out.println(uri.toString());
System.out.println(url1);

ありがとうございました

4

4 に答える 4

3

URLEncoder を使用して、URL に追加する前に各クエリ パラメータをエンコードします。

String encodedValue = URLEncoder.encode("(102 OR 140)", "UTF-8");
于 2012-06-08T14:22:34.883 に答える
1

間違ったコンストラクタを使用しました。これを試して:

URI uri = new URI("http","statebuild-dev.com", "/iit-title/size.xml", "id=(102 OR 140)", null);

こちらもご覧くださいjava.net.URLEncoder

于 2012-06-08T14:17:09.457 に答える
1

この回答には、URI/URL のさまざまな部分のエンコードに関する良い議論があります。あなたは正しい道を進んでいますが、特定の問題は、URI のさまざまな部分が間違っていることです。オーソリティ、パス、クエリ、およびフラグメントを取るマルチパート コンストラクターを使用する必要があります。

URI uri = new URI("http", "statebuild-dev.com", "/iit-title/size.xml", "id=(102 or 104)", null);
System.out.println(uri.toString());
System.out.println(uri.toASCIIString());
于 2012-06-08T14:17:39.833 に答える
0

java.net.URIクラスが役に立ちます。あなたが見つけたURLのドキュメントで

URI クラスは、特定の状況でコンポーネント フィールドのエスケープを実行することに注意してください。URL のエンコードとデコードを管理するための推奨される方法は、URI を使用することです。

このスレッドを確認してください。

于 2012-06-08T14:17:14.983 に答える