4

次のようなURLを渡します

http://somecompany.com/restws/ebi/SVI/4048/?Name=Tra&Brand=Software: WebSphere - Open App Servers

2番目のパラメーター(ブランド)が好きではありません。ブラウザーからは、上記のクエリ文字列は正常に機能しますが、Java で実行するとすぐに失敗します。単一のパラメーターを受け入れるように Web サービスを変更すると、この URL は正常に機能します

http://somecompany.com/restws/ebi/SVI/4048/?Name=Tra

Java の 2 番目のパラメーターに問題があるようです。エスケープ文字など、考えられるすべてのことを試しましたが、何も機能していないようです。助けてください!

String uri = "somecompany.com/restws/ebi/SVI/4048/?Name=" 
           + name+ "&Brand=Software: WebSphere - Open App Servers";

URL url;

try {
    url = new URL(uri);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.setRequestProperty("Accept", "application/xml");
}
...
4

2 に答える 2

6

パラメータを URL エンコードしてみてください。

このようなもの:

String uri = "somecompany.com/restws/ebi/SVI/4048/?Name=" +name+ "&Brand=";
uri = URLEncoder.encode("Software: WebSphere - Open App Servers", "utf-8");
于 2012-07-31T14:21:28.917 に答える
2

HTTP パラメータを適切に処理し、適切なエンコーディングなどを提供できるライブラリを使用することをお勧めします。詳細については、 HttpComponentsチュートリアルを参照してください。

于 2012-07-31T14:24:53.160 に答える