Android,Java:HTTP POST请求

我必须向网络服务发出http发布请求,以使用用户名和密码对用户进行身份验证。Web服务人员向我提供了以下信息,以构造HTTP Post请求。

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响应是

<?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); 我该如何构造其余参数?

回答:

这是之前在androidsnippets.com上找到的示例(该站点目前不再维护)。

// 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

另一种方法是使用(Http)URLConnection。另请参见使用java.net.URLConnection触发和处理HTTP请求。实际上,这是较新的Android版本(Gingerbread +)中的首选方法。另请参见此博客,此开发人员文档和Android的HttpURLConnectionjavadoc

以上是 Android,Java:HTTP POST请求 的全部内容, 来源链接: utcz.com/qa/402330.html

回到顶部