2016-12-16 6 views
0

Я пытаюсь получить данные после выполнения запроса «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(); 
     } 

Заранее спасибо

+0

Код верный, просто я поставил неправильное значение для ключевого слова. – grigorz

ответ

0

код правильно, только я надевал неправильное значение для ключевого слова.