Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 GET参数(不挂起)_Java_Http_Urlconnection - Fatal编程技术网

向服务器发送Java GET参数(不挂起)

向服务器发送Java GET参数(不挂起),java,http,urlconnection,Java,Http,Urlconnection,我想向服务器发送GET参数。我确实不需要InputStream(如下所示),但请求实际上是在我调用“getInputStream”时发送的。问题是,此代码挂起在getInputStream上。超时不适用,因为连接已实际建立(未超时) 我需要更改什么,以便在不挂起的情况下向服务器发送干净的GET URL url = new URL("http://localhost:8888/abc?message=abc"); //[edit] URLConnection uc = url.openConnec

我想向服务器发送GET参数。我确实不需要InputStream(如下所示),但请求实际上是在我调用“getInputStream”时发送的。问题是,此代码挂起在getInputStream上。超时不适用,因为连接已实际建立(未超时)

我需要更改什么,以便在不挂起的情况下向服务器发送干净的GET

URL url = new URL("http://localhost:8888/abc?message=abc"); //[edit]
URLConnection uc = url.openConnection();
uc.setRequestProperty("Accept-Charset", "UTF-8");
uc.setConnectTimeout(1000);
InputStream in = uc.getInputStream();
in.close();

如果有必要,我将使用
netcat-l
作为服务器进行测试,而不是使用实际的web服务器。尽管如此,我还是希望这段代码非常安全,这样服务器就不会对这段代码产生负面影响。

我基本上放弃了使用URLConnection,而是编写了使用套接字的代码。我仍然对改进持开放态度,轻量级的发布到web服务器是非常有用的

        URL u = new URL("http://localhost:8888/abc?message=abc");
        String get = "";
        if (u.getPath() != null)
            get += u.getPath();
        if (u.getQuery() != null)
            get += "?" + u.getQuery();
        if (u.getRef() != null)
            get += "#" + u.getRef();

        Socket socket = new Socket();
        socket
                .connect(new InetSocketAddress(u.getHost(), u.getPort()),
                        750);

        OutputStream out = socket.getOutputStream();
        out.write(("GET " + get + "\n\n").getBytes());
        out.close();
尝试
uc.connect()
而不是getInputStream()?但不确定是什么原因导致了挂断。
uc.connect()
似乎没有建立连接(netcat没有显示任何内容)。当我调用getInputStream时,数据被传输并显示在netcat中。我认为它是挂起的,因为双方都没有关闭连接。它正在阻止等待netcat的输入。我的目的只是传递GET参数并关闭连接(在同一线程中)。