마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HttpURLConnection 로 인터넷 연결해서 결과값 받는데 중간에 짤립니다.

0 추천

HttpURLConnection 로 인터넷 연결해서 결과값 받는데 중간에 짤립니다.

내용이 길어서 그런거 같긴한데, 뭘 설정해야 끝까지 받을 수 있을까요..?


		try
		{
			URL url = new URL (page);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection ();
			if (method.compareTo (HTTP_METHOD_GET) != 0)
			{
				conn.setDoOutput (true);
			}
			conn.setRequestMethod (method);
			if (headers != null)
			{
				String headerKey[] = headers.getNameArray ();
				for (int i = 0; i < headerKey.length; i++)
				{
					String values = headers.getValue (headerKey[i]);
					conn.setRequestProperty (headerKey[i], values);
				}
			}
			else
			{
				conn.setRequestProperty (CONTENT_TYPE, APPLICATION_JSON);
			}
			if (body != null || (filePath != null && !filePath.isEmpty ()))
			{
				OutputStream os = conn.getOutputStream ();
				if (body != null)
				{
					os.write (body.getBytes ());
				}
				os.flush ();
				os.close ();
			}
			int responseCode = conn.getResponseCode ();
			Log.i (TAG, "responseCode = " + responseCode);
			StringBuilder result = new StringBuilder ();
			//if (responseCode == 200)
			{
				InputStreamReader ir = new InputStreamReader (conn.getInputStream ());
				BufferedReader br = new BufferedReader (ir);
				String output;
				while ( (output = br.readLine ()) != null)
				{
					Log.i (TAG, "output = " + output);
					result.append (output);
				}
				
				//conn.disconnect ();
				String response = result.toString ();
				return response;
			}
		} catch (Exception e)
		{
			StackTraceElement ste= e.getStackTrace ()[1];
			Log.i (TAG, "line : " + ste.getLineNumber () +" // " + e.toString ());
		}

 

nicec (140 포인트) 님이 2015년 6월 18일 질문

1개의 답변

0 추천
안녕하세요.^^ 폰토스입니다.

첫번째로 인터넷익스플로러에서 url 및 파라미터 값을 넣고 서버에 결과값을 요청해보세요.

인터넷익스플로러에서 모든 문자열이 이상없이 넘어온다면 데이타에는 이상이 없는 것입니다.

두번째로 서버에서 보내주는 문자열이 인코딩이 안 맞을수도 있으니

BufferedReader br = new BufferedReader(new InputStreamReader(ir, "UTF-8"));

이렇게 변경도 해보세요.

되도록이면 while(..)문 다음에 br.close(); 추가해주시면 좋습니다.

conn.setRequestProperty(..) <= 이곳에

("Content-Type", "text/html;charset=utf-8")

추가해보세요.
폰토스 (620 포인트) 님이 2015년 6월 18일 답변
답변 감사합니다!! ^^ 복 받으실거에요!
...