Java 模仿浏览器HTTP post请求,奇怪的格式
哎,, 我正在为我大学最后一年的项目开发一个应用程序,我正在努力使用默认的http客户端来模仿下面的文章,因为它的格式似乎与我见过的其他文章不同。我使用的代码与此类似,并已成功登录到该站点:Java 模仿浏览器HTTP post请求,奇怪的格式,java,android,http,parameters,multipartform-data,Java,Android,Http,Parameters,Multipartform Data,哎,, 我正在为我大学最后一年的项目开发一个应用程序,我正在努力使用默认的http客户端来模仿下面的文章,因为它的格式似乎与我见过的其他文章不同。我使用的代码与此类似,并已成功登录到该站点: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.myurl.com/app/page.php"); // Add your data List<NameV
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();
}
这称为多部分格式,这意味着每个表单字段都有自己的多部分请求块。此格式通常用于上载文件 -----行就是将每个表单字段分割成自己部分的分隔符。确切的字符列在允许接收方解析正文的HTTP头中 您可以使用像Fiddler(www.fiddler2.com)这样的工具来查看实际站点上使用的这种格式 另见: 和
嘿,当你说“确切的字符列在允许接收者解析正文的HTTP头中”时,你是什么意思?我是否需要检索此值以成功模拟这些帖子?要使服务器正确解析您的请求,是的,您需要以与浏览器相同的方式在HTTP标头中包含分隔符字符串。ok。我想知道的是如何找到这个字符串?看看请求的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--