java新socket被斜杠弄乱了?
我有一个java程序试图通过socket发出HTTP请求。不知什么原因,字符串中的斜杠把它弄乱了
我有一个try/catch,一旦用斜杠创建socket,它就会被捕获
Socket socket = new Socket("www.google.ca", port);
回应
HTTP/1.1 400 Bad Request
Content-Length: 54
Content-Type: text/html; charset=UTF-8
Date: Fri, 14 Oct 2016 06:05:43 GMT
Connection: close
<html><title>Error 400 (Bad Request)!!1</title></html>
现在用斜杠
Socket socket = new Socket("www.google.ca/", port);
被抓住了
我的要求
outputStream.println("GET / HTTP/1.1");
outputStream.println("");
outputStream.flush();
我正在尝试使用带有斜杠的主机名和路径访问特定站点。发生了什么事
# 1 楼答案
比
IOException
更具体地说,您将得到一个UnknownHostException
(一个IOException
的子类),因为主机名不能包含斜杠您应该在catch块中打印/记录异常的堆栈跟踪;这个问题会更加明显
# 2 楼答案
第一个错误
HTTP/1.1 400 Bad Request
是因为请求路径错误。在不知道代码的情况下很难找到原因第二个错误就像安迪·特纳已经说过的那样,因为主持人的名字错了InetAddress无法用斜杠解析主机名
这个例子对我很有用:
您只需在这行中设置路径: