【发布时间】:2011-11-14 05:08:52
【问题描述】:
我读到 HttpsURLConnection 在 2.3 之前有问题,我亲身体验过它有问题。
我尝试过的替代方案是 HttpClient,但是它给我带来了问题,因为它返回给我这个:
<?xml version="1.0" encoding="iso-8859-1"?>
当我显然应该取回 JSON 时。
HttpsURLConnection 可以很好地返回 JSON,但在处理许多请求时会出现一些不一致的结果。 (通过返回 JSON,我的意思是响应应该包含 JSON)
知道为什么 HttpClient 会返回一些 xml 标签而不是 JSON(应该返回什么)?
编辑——代码
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
List<NameValuePair> urlParams = new ArrayList<NameValuePair>();
urlParams.add(new BasicNameValuePair("&platform=","Android"));
urlParams.add(new BasicNameValuePair("&action=","signin"));
urlParams.add(new BasicNameValuePair("&user",username));
urlParams.add(new BasicNameValuePair("&pass",password));
try {
post.setEntity(new UrlEncodedFormEntity(urlParams, HTTP.UTF_8));
HttpResponse resp = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
resp.getEntity().getContent()));
String line = "";
JSONArray ja = new JSONArray();
while ((line = rd.readLine()) != null) {
Log.i("------>", line);
ja = new JSONArray(line); //breaks here because it returns xml instead of JSON
}
rd.close();
return ja;
} catch (Exception e) {
e.printStackTrace();
return null;
}
这两个有更好的替代品吗?
【问题讨论】:
-
我不知道这是否重要,但该网站是 https,而不是 http
-
先告诉我是.net services还是php?
-
应该返回 JSON 的代码是用 php 编写的
-
别介意,当您在桌面浏览器中手动尝试时,您的 Url 是否提供 JSON 输出?
-
@Frankenstein ,是的;适用于浏览器和 httpsurlconnection
标签: android json httpclient httpurlconnection