Я пытаюсь получить данные после выполнения запроса «POST» с помощью getInputStream(). Я получаю данные. Но с «Почтальфом» я вижу, что часть данных не получена.Android HttpURLConnection POST данные ответа getInputStream не возвращают содержимое массива
получают следующие на андроид: { "данных": { "компании": [], "тенденции": [], "пользователи": []}, "мета": { "total_companies": 1000, "total_trends": 5, "total_users": 11}}
но "почтальон" возвращает следующее: { "данные": { "компании": [{ "имя": "Хозяюшка", "описание" : null}, {"name": "Tesco", "description": null}, {"name": "Whitestrips (Crest)", "description": null}], "trend": [], "users" : [{ "ID": 10, "first_name": "тест", "last_name": "тест", "пароль": "", "суффикс": нулевой, "пол": "U", "электронная почта": "[email protected]", "email_work": нулевой, "компания": нулевой, "facebook": нулевой, "щебет": NULL, "birth_date": "2016-06-14", "страна": нулевой, "язык": нулевой, "is_admin": 0, "is_a ctive ": 1," identity ": null," degree_id ": null," registration_date ": {" date ":" 2016-12-07 14: 57: 26.000000 "," timezone_type ": 3," timezone ":" UTC "}," ideas_count ": 0," followers_count ": 1," follows_count ": 0," is_following "ложь" follows_trends_count ": 0," suggested_trends_count ": 0}]}," мета ": {" total_companies ": 1000," total_trends ": 5," total_users ": 11}}
Похоже, что данные массивов компаний и пользователей не получены. я делаю следующее для запроса POST:
HttpURLConnection urlConnection = null;
try {
URL url = new URL(apiUrl);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setUseCaches(false);
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
String userAuth = USERNAME + ":" + PASSWORD;
String basicAuth = "Basic " + new String(Base64.encode(userAuth.getBytes(), Base64.NO_WRAP));
Log.d("SerachApi", "User Auth is: " + basicAuth);
urlConnection.setRequestProperty("Authorization", basicAuth);
urlConnection.setRequestMethod("POST");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("keyword", searchFor));
OutputStream os = urlConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close();
urlConnection.connect();
// Get response code
int responseCode = urlConnection.getResponseCode();
Log.d("SerachApi", "Response Code is: " + responseCode);
// Read the input stream into a String
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
inputStream));
List<String> response = new ArrayList<String>();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
response.add(line);
Log.d ("aaaaa", line);
}
bufferedReader.close();
} catch (IOException e){
e.printStackTrace();
}
Заранее спасибо
Код верный, просто я поставил неправильное значение для ключевого слова. – grigorz