0

我正在执行以下代码:

HttpClient httpclient = new DefaultHttpClient();

HttpResponse response = httpclient.execute(new HttpGet("(...)&avatarUrl={(...)}&socialId=1&sexo=m&username="));

我的问题是我illegalArgumentException从这个词中得到一个 at 字母 l avatarUrl,我不明白为什么。

我会非常感谢你的帮助。

4

2 回答 2

1

除了代码中的?oder问题之外&,还有更简洁的方法来传递参数:

HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
BasicHttpParams params = new BasicHttpParams();

params.setParameter("avatarUrl","...")
      .setParameter("socialId","...")
      .setParameter("sexo","...")
      .setParameter("username","...");

request.setParams(params);

HttpResponse response = httpclient.execute(request);

(未经测试,但应该可以)

注意:由于一些误解,我对原始答案进行了大量编辑。

于 2013-01-10T20:39:08.010 回答
0

查看HttpGet 的源码,这个异常意味着 URL 无效:

  1. 第一个查询字符串参数应以?
  2. {并且}不是URL 的有效字符,应转义
于 2013-01-10T20:33:36.020 回答