android - 未发送 HttpGet 参数

标签 android apache http http-get

我在 android 上使用 apache.http,大部分工作正常,但是当我尝试使用参数执行 get 请求时,这些参数也不会被发送。我究竟做错了什么?这是代码

HttpClient httpclient = new DefaultHttpClient();
HttpUriRequest request = new HttpGet(uri);

HttpParams p = new BasicHttpParams();
p.setParameter("param", "value");
request.setParams(p);

request.setHeader("Accept", "application/json, text/javascript, */*; q=0.01");

HttpResponse response = null;

try {
    response = httpclient.execute(request);
} catch (ClientProtocolException e) {
    e.printStackTrace();
}

在服务器上我只得到这个没有参数

GET /api/v1/activity/ HTTP/1.1
Host: example.com
Connection: Keep-Alive
Accept-Encoding: gzip
Accept: application/json, text/javascript, */*; q=0.01

有什么想法吗?

最佳答案

您必须修改 URI,如下所示:

HttpClient httpclient = new DefaultHttpClient();

String url = "http://example.com";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add( new BasicNameValuePair( "param", "value" ) );
URI uri = new URI( url + "?" + URLEncodedUtils.format( params, "utf-8" );

HttpUriRequest request = new HttpGet(uri);

request.setHeader("Accept", "application/json, text/javascript, */*; q=0.01");

HttpResponse response = null;

try {
    response = httpclient.execute(request);
} catch (ClientProtocolException e) {
    e.printStackTrace();
}

关于android - 未发送 HttpGet 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282240/

相关文章:

c# - .NET 中的 RESTful HTTP DELETE 方法

javascript - 是否可以配置 IE 以允许 XHR 到 `http://127.0.0.1 from` HTTPS?

http - 使用 inet 检测 HTTP 关闭

安卓:java.lang.ClassNotFoundException:android.support.v4.media.TransportMediatorJellybeanMR2

android - 检测 URL 是否以及何时*成功*加载

apache - 提交访问被拒绝 : 'foobar' MKACTIVITY MYREPO: 时出现 SVN 错误

php - IE8 中页面未完全加载(html 源代码被截断)

Android:允许平板电脑纵向和横向,但在手机上强制纵向?

java - 为android Activity 类创建头文件

apache - 如何解决此 https 问题?