Я читал, что 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;
}
Есть ли лучшие альтернативы этим двум?