Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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:如何使用HTTP从客户端到服务器发送和接收Json字符串,反之亦然_Java_Json_File_Sockets_Http - Fatal编程技术网

JAVA:如何使用HTTP从客户端到服务器发送和接收Json字符串,反之亦然

JAVA:如何使用HTTP从客户端到服务器发送和接收Json字符串,反之亦然,java,json,file,sockets,http,Java,Json,File,Sockets,Http,在java中通过套接字进行客户端编程,但在HTTP客户端服务器应用程序中是新的 然而,我正在尝试编写客户机-服务器应用程序,客户机应该能够向服务器发送消息并听到结果,他们应该能够发送和接收文件。 到目前为止,我所做的是使用com.sun.net.httpserver创建一个服务器(我不知道它是否合适,这是我唯一能找到的好教程): 我可以使用java.net.URL和java.net.HttpURLConnection成功地创建到该服务器的连接。 但我不知道如何发送和接收两边的字符串和文件!我甚至

在java中通过套接字进行客户端编程,但在HTTP客户端服务器应用程序中是新的

然而,我正在尝试编写客户机-服务器应用程序,客户机应该能够向服务器发送消息并听到结果,他们应该能够发送和接收文件。 到目前为止,我所做的是使用
com.sun.net.httpserver
创建一个服务器(我不知道它是否合适,这是我唯一能找到的好教程):

我可以使用
java.net.URL
java.net.HttpURLConnection
成功地创建到该服务器的连接。 但我不知道如何发送和接收两边的字符串和文件!我甚至找不到一个完整的教程

所以现在我希望有人能给我一个简单的例子,说明如何做到这一点? 或者,如果有任何好的和易于学习的图书馆,我可以用这个?(当然我首先需要一些教程)


提前感谢

这是一个发送文件的http服务器示例。

我知道如何使用插座。但是套接字不提供NAT遍历。@MohammadSiavashi检查更新的答案,这就是你的尝试吗?是的,不知怎么的,它有帮助。但我需要知道如何发送和接收字符串。最重要的是在客户端。因为没有针对客户端的教程side@MohammadSiavashi这不是客户端吗?
public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
        server.createContext("/test", new MyHandler());
        server.setExecutor(null);
        server.start();
}

static class MyHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange t) throws IOException {
        System.out.println(t.getHttpContext());
        String response = "This is the response";
        t.sendResponseHeaders(200, response.length());
        OutputStream os = t.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}