2016-12-16 3 views
0

getInputStream()을 사용하여 "POST"요청을 수행 한 후 데이터를 가져 오려고합니다. 나는 자료를 얻고있다. 그러나 "우편 배달부"는 데이터의 일부가 수신되지 않는 것을보고 있습니다.안드로이드 HttpURLConnection POST getInputStream 응답 데이터가 배열 내용을 반환하지 않습니다.

점점 안드로이드에 다음 { "데이터": { "회사"[] "경향"[] "사용자": []}, "메타": { "total_companies": 1000, "total_trends": 5, "TOTAL_USERS": 11}}

그러나 "우편 배달부"반환 다음

: { "데이터": { "회사": [{ "이름": "안주인", "설명" : "}", "트렌드": [], "사용자": {null}, { "name": "Tesco", "description": null}, { "name": "Whitestrips (Crest) : "test", "last_name": "test", "password": "", "suffix": null, "gender": "U", "email": null, "twitter": null, "birth_date": "2016-06-14", "country": null, "[email protected]" "언어": null, "is_admin": 0, "is_a ctive ": 1,"특성 ": null,"degree_id ": null,"registration_date ": {"date ":"2016-12-07 14 : 57 : 26.000000 ","timezone_type ": 3,"timezone " 0, "follow_count": 1, "following_count": 0, "is_following": false, "follows_trends_count": 0, "suggested_trends_count": 0}]}, "meta": { "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

의 코드가 정확한지, 그냥 키워드에 대한 잘못된 값을 넣어했다.