【发布时间】:2011-07-13 16:08:03
【问题描述】:
我只是想通过 HTTP POST 发送我的 Google 帐户身份验证数据。我已经构建了 HTTPpost(对 ArrayList 名称-值对进行 URL 编码)并执行了 HTTPClient 以获取 HTTPResponse。然而,这是问题开始的地方,每当我尝试调用其相关方法之一(getStatusLine 或 getEntity)时,我返回的 HTTPResponse 似乎都会返回异常。我还尝试通过简单的“if (null) else”类型检查来检查“null”响应,但仍然没有运气。
这个问题是因为我使用的是模拟器吗?
-----更新-----
我发现我收到了一个 NULL 指针响应,这会导致异常。因此,我访问 Google API 的方式存在问题。 URL 是“https://www.google.com/accounts/ClientLogin”,“Email”和“Passwd”是我用于 POST 请求的两个参数。
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("<URL HERE>");
try {
List<NameValuePair> parameters = new ArrayList<NameValuePair>(2);
parameters.add(<name_value_pair>);
parameters.add(<name_value_pair>);
httppost.setEntity(new UrlEncodedFormEntity(parameters));
HttpResponse response = httpclient.execute(httppost);
StatusLine returned_status = response.getStatusLine();
int status_code = returned_status.getStatusCode();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
【问题讨论】:
-
你有 INTERNET 权限集吗?
-
是的……!!!我已经设置好了...!!
-
我要提到的另一件事是,我检查了 URL 是否格式错误。并不是说它应该受到伤害(无论如何我都应该收到错误响应)。我在网络浏览器上输入了 URL(带有名称-值对),我收到了来自 google 服务器的 200 OK 响应。
-
是的,我会尽快完成的。也许我应该开始在云上保存更多的东西(代码在我家里的笔记本电脑上)。
-
可能有助于显示异常的堆栈跟踪
标签: java android debugging httpclient http-post