关于Java中REST请求和输出/输入流的澄清

关于Java中REST请求和输出/输入流的澄清,java,rest,post,outputstream,Java,Rest,Post,Outputstream,我必须用纯Java实现post请求 我已看过以下问题: 这是示例的一部分 String url = "https://myStore.com/REST-API/"; String requestBody = "{\"searchProduct\": \"" + searchProduct + "\"}"; URL obj = new URL(url); HttpsURLConnection connection = (HttpsURLConnection) obj .ope

我必须用纯Java实现post请求

我已看过以下问题:

这是示例的一部分

String url = "https://myStore.com/REST-API/";
String requestBody = "{\"searchProduct\": \"" + searchProduct + "\"}";

URL obj = new URL(url);

HttpsURLConnection connection = (HttpsURLConnection) obj
        .openConnection();

connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");

OutputStream outputStream = connection.getOutputStream();

outputStream.write(requestBody.getBytes());
我的问题是:为什么参数会写在输出流上?据我所知,输出流用于收集请求的输出,而不是发出请求


这只是一个好奇心,认为我显然不擅长这一点。

< P> <代码>输入流< /代码>和<代码> OuttoStult是抽象流。所谓流,我指的是处理数据的方式(程序的输入或输出)
如果应用程序从流接收信息,请使用
InputStream
。如果它发送数据,则
OutputStream

  • InputStream
    用于从源读取数据
var input=new FileInputStream(“input.txt”);//读取数据
  • OutputStream
    用于将数据写入目标
var output=new FileOutputStream(“output.txt”);//写下数据

你应该阅读答案:还有更多的解释。

输入流和输出流的目标是抽象流。所谓流,我指的是处理数据的方式(程序的输入或输出)
如果应用程序从流接收信息,请使用
InputStream
。如果它发送数据,则
OutputStream

  • InputStream
    用于从源读取数据
var input=new FileInputStream(“input.txt”);//读取数据
  • OutputStream
    用于将数据写入目标
var output=new FileOutputStream(“output.txt”);//写下数据

您应该阅读答案:还有更多的解释。

首先让我们解释一下HttpConnectionURL是如何工作的

当您想从服务器请求数据时

  • 首先创建到该服务器的连接
  • 然后将数据写入连接(请求)
  • 最后从连接(响应)读取数据
  • 因此,要向连接写入数据,您需要获取连接的OutputStream的引用,并向其写入数据

    OutputStreamWriter writer = new OutputStreamWriter(
                connection.getOutputStream());
        writer.write("message=" + message);
    
    要从连接中读取数据,您需要获取对连接的InputStream的引用并从中读取数据

    InputStreamReader reader = new InputStreamReader(connection.getInputStream());
    reader.read();
    
    通常,当数据从程序流出(到文件、网络等)时使用OutputStream,当数据流入程序(从文件、网络等)时使用InputStream

    我想这会给你带来你想要的清晰


    首先,让我们解释一下HttpConnectionURL是如何工作的

    当您想从服务器请求数据时

  • 首先创建到该服务器的连接
  • 然后将数据写入连接(请求)
  • 最后从连接(响应)读取数据
  • 因此,要向连接写入数据,您需要获取连接的OutputStream的引用,并向其写入数据

    OutputStreamWriter writer = new OutputStreamWriter(
                connection.getOutputStream());
        writer.write("message=" + message);
    
    要从连接中读取数据,您需要获取对连接的InputStream的引用并从中读取数据

    InputStreamReader reader = new InputStreamReader(connection.getInputStream());
    reader.read();
    
    通常,当数据从程序流出(到文件、网络等)时使用OutputStream,当数据流入程序(从文件、网络等)时使用InputStream

    我想这会给你带来你想要的清晰