在android中使用Http Post发送Form-data Post请求
Posted
技术标签:
【中文标题】在android中使用Http Post发送Form-data Post请求【英文标题】:Send Form-data Post request using Http Post in android 【发布时间】:2013-10-12 16:30:39 【问题描述】:我想使用“form-data”发送一个 HTTP Post 请求。这是其余客户端的屏幕截图,以显示我想要什么:
更多关于标头的信息:
POST /action HTTP/1.1
Host: requsrt-utl
Cache-Control: no-cache
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="email"
abc@gmail.com
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="password"
123456
----WebKitFormBoundaryE19zNvXGzXaLvS5C
我尝试使用UrlEncodedFormEntity,但它将内容类型设置为'application/x-www-form-urlencoded',这是不正确的。
我的安卓代码:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(urlStr);
try
UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(nameValuePairs);
httppost.setEntity(encodedFormEntity);
HttpResponse httpresponse = httpclient.execute(httppost);
return httpresponse.getEntity().getContent();
catch (ClientProtocolException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
当我使用这个时,网络服务没有得到任何参数,因此它发送一条消息'参数不存在'。
请帮忙!
【问题讨论】:
【参考方案1】:这可能对你有帮助
HttpPost httppost = new HttpPost(urlStr);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("userid", "12312"));
nameValuePairs.add(new BasicNameValuePair("sessionid", "234"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
how to add parameters in android http post?
【讨论】:
我也在做同样的事情,但总是得到 '415 unsupported media' 类型。我什至没有设置任何内容类型的标题。 您可能需要设置标题“Content-Type”。request.addHeader("Content-Type","application/x-www-form-urlencoded");
不需要内容标题。他们创建了一个多部分的 http 调用,所以我做了。以上是关于在android中使用Http Post发送Form-data Post请求的主要内容,如果未能解决你的问题,请参考以下文章
如何使用异步http post从android studio发送数据到xampp并在真实设备中运行?
post 方法在 laravel 8 中无法使用 react native for android
android如何将int和double作为namevaluepair作为http post发送