Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接到URL失败,但当我直接在浏览器中尝试时,它成功了_Java_Servlets_Httpconnection - Fatal编程技术网

Java 连接到URL失败,但当我直接在浏览器中尝试时,它成功了

Java 连接到URL失败,但当我直接在浏览器中尝试时,它成功了,java,servlets,httpconnection,Java,Servlets,Httpconnection,下面的代码段尝试将2个参数和URL一起发送到servlet。但当我尝试这个片段时,我得到一个信息: Connection to file server failed 但如果我直接尝试URL: http://localhost:8084/nappster/ReceiveFileName?fileName=" + fileName + "&ip=" + IP 有了这些数据,就没有问题了。Servlet接收文件名并按预期处理它。当我尝试通过代码连接到URL时,在浏览器中尝试时失败并成功的原

下面的代码段尝试将2个参数和URL一起发送到servlet。但当我尝试这个片段时,我得到一个信息:

Connection to file server failed
但如果我直接尝试URL:

http://localhost:8084/nappster/ReceiveFileName?fileName=" + fileName + "&ip=" + IP
有了这些数据,就没有问题了。Servlet接收文件名并按预期处理它。当我尝试通过代码连接到URL时,在浏览器中尝试时失败并成功的原因可能是什么

  protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String fileName = request.getParameter("FileTag");
    String IP = new ClientAddress().getNetworkIP();                
    // Send the file name to the nappster server 
    URL url = new URL("http://localhost:8084/nappster/ReceiveFileName?fileName=" + fileName + "&ip=" + IP);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    if(connection.getResponseCode() == 200) {
        // File name sent successfully to the server
        System.out.println("Connection to file server successful");
        System.out.println("--------");
    } else {
        // Unable to send file name to the server
        System.out.println("Connection to file server failed");

     }
}
注意:



尝试上述代码段时返回的响应代码是505

尝试使用
url.encode()
方法

尝试使用
url.encode()
方法

您传递的信息可能包含字母、数字和一些在URL字符串中有意义的特殊字符。为了避免这种情况,我们使用了编码。请检查您的文件名或ip参数是否包含这些内容。然后我可以在浏览器中直接访问URL。这是怎么回事?浏览器在发布到服务器之前默认会对URL进行编码。请共享您现在获得的实际URL和响应代码。有关如何使用URL编码器正确编码URL的示例,请参阅。您传递的信息可能包含字母字符、数字、,以及一些在URL字符串中有意义的特殊字符。为了避免这种情况,我们使用了编码。请检查您的文件名或ip参数是否包含这些内容。然后我可以在浏览器中直接访问URL。这是怎么回事?在发布到服务器之前,浏览器默认会对URL进行编码。请共享您现在获得的实际URL和响应代码。有关如何使用URL编码器正确编码URL的示例,请参阅。在浏览器中可能会出现您没有注意到的重定向-尝试打印更多数据,而不仅仅是System.out.println(“与文件服务器的连接失败”);返回的
responseCode
是什么?当您获得响应代码时,是否可以打印
Connection.getResponseCode()
的值?这是不支持的HTTP版本…我认为HttpUrlConnection仅是v1.0版,您可能需要尝试类似HttpComponents()相反-服务器可能需要1.1。@cjsethno但当我在另一个servlet中尝试时,它工作正常。例如
http://localhost:8084/nappster/ReceiveInformation?“+信息
浏览器中可能存在您没有注意到的重定向-尝试打印更多数据,而不仅仅是System.out.println(“与文件服务器的连接失败”);返回的
responseCode
是什么?当您获得响应代码时,是否可以打印
Connection.getResponseCode()
的值?这是不支持的HTTP版本…我认为HttpUrlConnection仅是v1.0版,您可能需要尝试类似HttpComponents()相反-服务器可能需要1.1。@cjsethno但当我在另一个servlet中尝试时,它工作正常。例如
http://localhost:8084/nappster/ReceiveInformation?“+信息