我通过传递用户名和密码进行基本身份验证,然后BasicNameValuePair
用于发送帖子参数以获取服务的响应。
我的方法:
public StringBuilder callServiceHttpPost(String userName, String password, String type)
{
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(WEBSERVICE + type);
HttpResponse response = null;
StringBuilder total = new StringBuilder();
try {
URL url = new URL(WEBSERVICE + type);
/*String base64EncodedCredentials = Base64.encodeToString((userName
+ ":" + password).getBytes(), Base64.URL_SAFE
| Base64.NO_WRAP);*/
String base64EncodedCredentials = "Basic " + Base64.encodeToString(
(userName + ":" + password).getBytes(),
Base64.NO_WRAP);
httppost.setHeader("Authorization", base64EncodedCredentials);
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("day", Integer.toString(2)));
nameValuePairs.add(new BasicNameValuePair("emailId", "usertest@gmail.com"));
nameValuePairs.add(new BasicNameValuePair("month", Integer.toString(5)));
nameValuePairs.add(new BasicNameValuePair("year", Integer.toString(2013)));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
HttpEntity entity = response.getEntity();
if (entity != null) {
try {
InputStream instream = entity.getContent();
String line = "";
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(instream));
// Read response until the end
while ((line = rd.readLine()) != null) {
total.append(line);
}
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return total;
}
但我总共得到了这个:
<html><head> <title>Status page</title></head><body><h3>Invalid json representation of content</h3><p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">here</a>.<br>Please continue your visit at our <a href="/">home page</a>.</p></body></html>