4

我有一个我传入的 URL,看起来像这样

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

它不喜欢第二个参数(品牌)。在浏览器中,上面的这个查询字符串可以正常工作,但是一旦我在 Java 中执行,它就会失败。当我将 web 服务更改为接受单个参数时,此 URL 工作正常

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

似乎java的第二个参数有问题。我已经尝试过转义字符和我能想到的所有其他东西,但似乎没有任何效果。请帮忙!

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 回答