以URL作为参数的HTTP Post请求

时间:2012-05-28 14:14:04

标签: java android https

我需要使用参数向服务器发送https请求,其中一个是URL: 我接下来做了:

HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(APIURL);
    httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("url", "https://api/v1/pictureadress/id"));
 ...

添加网址参数时出错。但是如果我添加其他参数,除了url,如年龄,性别等,我没有错误。我做错了什么?

2 个答案:

答案 0 :(得分:0)

我没有接触过apache组件库。但是查看BasicNameValuePair上的api,我知道输入名称和值是原始存储的,而不是编码的。我担心这就是你的url参数值导致错误的原因。您可能需要UrlEncodedFormEntity,除非已经使用了处理网址编码的名称值对。

答案 1 :(得分:0)

试试这个..

public void postData() throws Exception {


 HttpClient client = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("http://www.xyz.com");

 List<NameValuePair> list = new ArrayList<NameValuePair>(1);

 list.add(new BasicNameValuePair("name","ABC");

 httppost.setEntity(new UrlEncodedFormEntity(list));

 HttpResponse r = client.execute(httppost);

}