2011-03-07 45 views
0

嘿, 我正在爲我在大學的最後一年項目的應用程序工作,我正在努力嘗試使用默認的http客戶端來模仿下面的帖子,因爲它與我見過的其他人看起來格式不同。我使用的是類似這樣的,代碼在日誌已經成功到網站:模仿瀏覽器HTTP發佈請求,奇怪的格式

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://www.myurl.com/app/page.php"); 
// Add your data 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5); 
nameValuePairs.add(new BasicNameValuePair("type", "20")); 
nameValuePairs.add(new BasicNameValuePair("mob", "919895865899")); 
nameValuePairs.add(new BasicNameValuePair("pack", "0")); 
nameValuePairs.add(new BasicNameValuePair("exchk", "1")); 

try { 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     Log.d("myapp", "works till here. 2"); 
     try { 
      HttpResponse response = httpclient.execute(httppost); 
      Log.d("myapp", "response " + response.getEntity()); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 

不過,我掙扎着從後下區分參數和他們的價值觀和我不能確定的目的任何幫助將是非常讚賞的數量8743499427392.:

(從HTTP實時頭後的部分)

http://messaging.o2online.ie/con_save.osp 

POST /con_save.osp -----------------------------8743499427392 
Content-Disposition: form-data; name="EContactID" 

-1^ 
-----------------------------8743499427392 
Content-Disposition: form-data; name="EContactIDList" 


-----------------------------8743499427392 
Content-Disposition: form-data; name="Categories" 

Synch; 
-----------------------------8743499427392 
Content-Disposition: form-data; name="ENickName" 

Test Colm Test Shannon 
-----------------------------8743499427392 
Content-Disposition: form-data; name="EAtt1"; filename="" 
Content-Type: application/octet-stream 


-----------------------------8743499427392 
Content-Disposition: form-data; name="EPMobile" 

0868617541 
-----------------------------8743499427392 
Content-Disposition: form-data; name="EMobile" 


-----------------------------8743499427392-- 

回答

2

這就是所謂的多部分格式,這意味着每個表單域獲得其自己的多部分請求塊。這種格式通常用於上傳文件。

----- ######行簡單地說就是將每個表單字段拆分爲自己的部分的分隔符。確切的字符被列在允許接收機解析主體的HTTP標頭中。

您可以使用像Fiddler(www.fiddler2.com)這樣的工具來查看在真實世界網站上使用的這種類型的格式。

參見: Multipart forms from C# clientUpload files with HTTPWebrequest (multipart/form-data)

+0

嘿,那你的意思,當你說:「確切的字符列在一個HTTP頭,允許接收器解析身體。」?我會不知何故需要檢索這個值來成功地模仿這些帖子? –

+0

爲了讓服務器正確解析你的請求,是的,你需要在瀏覽器中使用你的分隔符字符串。 – EricLaw

+0

好的。我想知道的是我如何去尋找這個字符串? –