我需要使用参数向服务器发送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,如年龄,性别等,我没有错误。我做错了什么?
答案 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);
}