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

안드로이드에서 php로 서버와 통신을 하는데 가끔 문제가 발생합니다.

0 추천
try {
			URL purl = new URL(url);
			
			HttpURLConnection conn = (HttpURLConnection)purl.openConnection();
			
			if(conn != null) {
				conn.setConnectTimeout(10000);
				conn.setUseCaches(false);
				conn.setRequestMethod("GET");
				if(conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
					BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
					for(;;) {
						String line = br.readLine();
						if(line == null) break;
						jsonHtml.append(line + "\n");
					}
					br.close();
				}
				conn.disconnect();
			}
			
			return jsonHtml.toString();
		} catch (Exception e) {
			e.printStackTrace();
			
			return e.getMessage();
		}

이런 식으로 서버에 GET으로 보내고 응답을 받아오는 과정에서 일부 데이터가 DB에 입력이 되질 않습니다.

예를 들어 http://server/ok.php?name=park&age=30를 안드로이드로 보내면

name은 정상적으로 db에 입력이 되는데 age같은 경우는 빈 칸으로 입력이 됩니다.

그런데 이게 항상 안들어가는게 아니라 어떤 경우는 들어가고 어떤 경우는 안들어가네요

소스상의 문제인지 아니면 다른 문제인지 모르겠습니다. 도와주세요 ㅠㅠ

익명사용자 님이 2015년 1월 20일 질문

1개의 답변

0 추천
 
채택된 답변
저같은 경우는 http connection 을 할때, 파라미터가 들어가지 않는 경우는 없었으나..

항상 100% 전송된다고 생각하고 코딩하면 위험해요.

예외처리는 항상해주셔야 합니다.

 

받는 php 소스쪽에 name이나 age값이 들어오지 않으면

문자로 ERR:name 등 뭔가 에러가 있다는 것을 알려주고,

앱단에서 ERR 등 에러메세지를 리턴받으면 다시 전송하거나, 전송이 실패했다는 메세지를 띄워주셔야 합니다.ㅎㅎ

 

그런데..get으로 보내는데 인자가 안넘어가는건..

앱단에서 못넘기는건지 php단에서 못받는건지 로그를 찍어서 확인해보셔야 겠네요
안드로이드로우 (15,740 포인트) 님이 2015년 1월 20일 답변
...