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();
}
감사를 사전
코드가 정확합니다. 키워드에 잘못된 값을 넣었습니다. – grigorz