我试图了解 HTTP 协议的工作原理,因此我尝试手动将标头添加到 java Socket 以向 httpbin.org 发送请求,如下所示:
BufferedWriter wr = new BufferedWriter(/*socket Outputstream*/)
wr.write("POST post HTTP/1.1\r\n");
wr.write("Host: httpbin.org\r\n");
wr.write("Accept: */*\r\n");
wr.write("Content-Length: "+data.length()+"\r\n");
wr.write("Content-Type: multipart/form-data; boundary=---WebKitFormBoundary67\r\n");
wr.write("\r\n");
wr.write(data);
wr.flush();
在上面的代码中data是 HTTP 请求的有效负载,如下所示:
---WebKitFormBoundary67
Content-Disposition: form-data; name="field1"
value1
---WebKitFormBoundary67
Content-Disposition: form-data; name="field2"; filename="example.txt"
Java is better when it run long
---WebKitFormBoundary67--
但是服务器 httpbin.org 没有识别任何附加的文件,我错过了什么吗?
慕田峪4524236
相关分类