以下代码段尝试连接到网址。该URL还会发送名为FileNames
的参数。但是,当我运行此代码段时,我总是得到HTTP Version Not Supported
回复。可能是什么原因?
try {
URL url = new URL(AddressInformation.clientAddressToSendFileNames + URLEncoder.encode(list.toString(), "UTF-8")); // STATEMENT-1
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
if(connection.getResponseCode() == 200) {
// File names sent to the client that requested it
System.out.println("File names sent");
} else {
// Error : While trying to send the file names
System.out.println("Unable to send file names");
System.out.println("RESPONSE CODE ------->>>>" + connection.getResponseMessage());
}
} catch(Exception exc) {
exc.printStackTrace();
}
在STATEMENT-1中,AddressInformation.clientAddressToSendFileNames
对应
http://localhost:8084/D Nappster/ReceiveFileNames?FileNames=
。
我正在运行Tomcat 7.
答案 0 :(得分:3)
您的网址似乎无效(其中包含空格),但网址构造函数未检测到该网址。
相反,您可以使用URI
的构造函数,它将为您正确编码,而不必担心,然后将其转换为URL:
URI uri = new URI("http", null, "thehost", theport, "thepath", "thequery", null);
URL url = uri.toURL();
当然,这需要更改AddressInformation
。
有关详细信息,请参阅Javadoc。
答案 1 :(得分:1)
好吧,就我而言,我解决了这个问题,在httpConnection.getResponseCode()语句之前在我的url中执行替换:用%20替换空格。
例如:
String url = "http://localhost:8080/Service/methodName?imagem=MY IMAGE NAME";
url = url.replace(" ", "%20");
更换后,网址将如下所示:
http://localhost:8080/Service/methodName?imagem=MY%20IMAGE%20NAME
为了测试它,请尝试将网址直接放入浏览器。