我在使用 HttpClient 时遇到了一个奇怪的问题。我将 DefaultHttpClient() 与 HttpPost 一起使用。我使用 HttpGet 并取得了 100% 的成功,但现在尝试切换到 HttpPost,因为我正在使用的 REST API 需要 POST 参数而不是 GET。(虽然只针对一些 API 调用,所以我知道 GET 调用工作正常,所以这不是 API 的错误)。
另外,我尝试在我编写的一个简单的 php 脚本上使用 HttpPost,该脚本查找 POST 参数“var”并将其回显到屏幕,按如下方式传递此参数可以正常工作:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
postMethod = new HttpPost("http://www.examplewebsite.com");
nameValuePairs.add(new BasicNameValuePair("var", "lol"));
try {
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpClient.execute(postMethod, responseHandler);
Log.i("RESTMethod", response);
...
问题是,当我尝试对 API 进行相同的调用(但显然将参数更改为 API 参数)时,我收到以下错误:
Authentication error: Unable to respond to any of these challenges: {}
我请求的页面是 HTTPS 页面,这可能是问题吗?
但是对 API 上的原始 HTTP 页面执行相同类型的 POST 请求会产生相同的错误,除非我注释掉 StringEntity 部分然后它运行(但返回 xml 并且我想传递一个参数来请求 JSON 中的数据) .
这似乎是一个非常奇怪的问题(非 https 部分),但在这个问题上找不到任何帮助,如果答案在那里,我们很抱歉。
有任何想法吗?
提前致谢,
无限化
编辑:好的,我无处可去,所以我想如果我将您定向到 API,它可能会有所启发,它是8Tracks API,正如您所看到的,您需要为所有请求传递一个开发密钥(api_key),而我就是其中的一部分我坚持使用 https 登录用户:http://www.8tracks.com/sessions.xml ”部分。
希望这会有所帮助,因为我处于死胡同。
谢谢,
无限化