Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模仿浏览器HTTP post请求,奇怪的格式_Java_Android_Http_Parameters_Multipartform Data - Fatal编程技术网

Java 模仿浏览器HTTP post请求,奇怪的格式

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

哎,, 我正在为我大学最后一年的项目开发一个应用程序,我正在努力使用默认的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();
    }

这称为多部分格式,这意味着每个表单字段都有自己的多部分请求块。此格式通常用于上载文件

-----行就是将每个表单字段分割成自己部分的分隔符。确切的字符列在允许接收方解析正文的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--