2014-05-15 34 views
0

我目前正在使用java套接字上传测试。我发现一个使用httpurlconnection的例子,但为了我的任务,我必须用套接字手动执行。另外,我将使用的服务器不接受HTTP PUT请求,只接受POST请求。因此,在那里我有一条线,看起来像这样:使用java套接字编程上传速度测试

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

试试这个

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(); 
+0

我想,这是我得到的服务器的响应:HTTP/1.1 400错误的请求 日期:周四2014 GMT 2时13分19秒服务器 5月15日:阿帕奇/2.2.23(FreeBSD)PHP/5.4.10 mod_ssl/2.2.23 OpenSSL/0.9.8n DAV/2 不同:Accept-Encoding Content-Length:226 Connection:close Content-Type:text/html;字符集= ISO-8859-1 <!DOCTYPE HTML PUBLIC! “ - // IETF // DTD HTML 2.0 // EN”> 400错误的请求

坏请求

您的浏览器发送了这个服务器无法理解的请求。

user3579421

+0

在http://www.hurl.it/首先测试您的URL并检查响应 – azizulhakim