Android、Java:HTTP POST 请求 [英] Android, Java: HTTP POST Request
问题描述
我必须向 Web 服务发出 http post 请求,以使用用户名和密码对用户进行身份验证.Web 服务人员给了我以下信息来构建 HTTP Post 请求.
I have to do a http post request to a web-service for authenticating the user with username and password. The Web-service guy gave me following information to construct HTTP Post request.
POST /login/dologin HTTP/1.1
Host: webservice.companyname.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 48
id=username&num=password&remember=on&output=xml
我将得到的 XML 响应是
The XML Response that i will be getting is
<?xml version="1.0" encoding="ISO-8859-1"?>
<login>
<message><![CDATA[]]></message>
<status><![CDATA[true]]></status>
<Rlo><![CDATA[Username]]></Rlo>
<Rsc><![CDATA[9L99PK1KGKSkfMbcsxvkF0S0UoldJ0SU]]></Rsc>
<Rm><![CDATA[b59031b85bb127661105765722cd3531==AO1YjN5QDM5ITM]]></Rm>
<Rl><![CDATA[username@company.com]]></Rl>
<uid><![CDATA[3539145]]></uid>
<Rmu><![CDATA[f8e8917f7964d4cc7c4c4226f060e3ea]]></Rmu>
</login>
这就是我正在做的 HttpPost postRequest = new HttpPost(urlString);我如何构造其余的参数?
This is what i am doing HttpPost postRequest = new HttpPost(urlString); How do i construct the rest of the parameters?
推荐答案
这是之前在 androidsnippets.com(该网站目前不再维护).
Here's an example previously found at androidsnippets.com (the site is currently not maintained anymore).
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
因此,您可以将参数添加为 BasicNameValuePair
.
So, you can add your parameters as BasicNameValuePair
.
另一种方法是使用 (Http)URLConnection
.另请参阅使用 java.net.URLConnection触发和处理 HTTP 请求.这实际上是较新的 Android 版本 (Gingerbread+) 中的首选方法.另请参阅此博客,此开发人员文档 和 Android 的 HttpURLConnection
javadoc.
An alternative is to use (Http)URLConnection
. See also Using java.net.URLConnection to fire and handle HTTP requests. This is actually the preferred method in newer Android versions (Gingerbread+). See also this blog, this developer doc and Android's HttpURLConnection
javadoc.
这篇关于Android、Java:HTTP POST 请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!