2014-05-15 67 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