我目前正在使用java套接字进行上传测试。我找到了一个使用httpurlconnection的例子但是为了我的作业,我必须用套接字手动完成。此外,我将使用的服务器不接受HTTP PUT请求,只接受POST请求。因此,在那里我有一行看起来像这样:
conn = new Socket(server, 80);
outToServer = new DataOutputStream(conn.getOutputStream());
inFromServer = new BufferedReader(new InputStreamReader(conn.getInputStream()));
outToServer.writeBytes("POST...etc...");
我不太确定如何格式化POST请求。以下是我编写PUT请求失败的原因,因为我使用的服务器不接受PUT请求:
outToServer.writeBytes("PUT /url/test1.txt HTTP/1.1\r\n"
+ "Host: url.edu\r\n"
+ "Content-Type: plain/text\r\n"
+ "Connection: close\r\n\r\n");
非常感谢任何帮助。
答案 0 :(得分:0)
试试这个
Socket conn = new Socket(server, 80);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF8"));
writer.write("POST " + "http://www.example.com" + " HTTP/1.0\r\n");
writer.write("Content-Length: " + data.length() + "\r\n");
wr.write("Content-Type: plain/text\r\n");
writer.write("\r\n");
writer.write(data);
writer.flush();