게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드로이드 http프로토콜로 json형식 post로 전송이 안되요
게시물ID : programmer_20460짧은주소 복사하기
작성자 : 내밑으로오게나
추천 : 0
조회수 : 8340회
댓글수 : 21개
등록시간 : 2017/05/03 15:54:40
지금 안드로이드를 공부를 하고 있는데 서버 통신을 다룰줄 아는게 php로 json으로 통신이라
안드로이드에서 http로 서버와 json 형식으로 통신을 하려고 합니다.
get 방식으로 url형식으로 값을 넘길때는 잘 넘어가고 값도 잘 넘어오는 것을 확인해서
이번에 post로 값을 넘기려니 오류는 전혀 안나는데 그냥 php에서 $_POST 변수가 텅 비어있네요
아래 코드 JOSNObject에서 String으로 뽑을 때 완벽히 json 문자열 형식으로 뽑히는 거 확인했습니다.
그냥 제가 느끼기에는 
 os.write(param.toString().getBytes("UTF-8"));
이 부분이 안드로이드가 값을 못 날리는지, 서버가 받아도 팅기는지 전혀 알 수 없네요
블로그 같은 곳은 난 이코드로 잘 전송 됬다. 이런 느낌인데
다방면으로 코드 테스트 해봐도 저 줄 외엔 의심을 할 수가 없고, 저 줄을 더이상 어떻게
디버깅을 해야할지 감이 안오네요... 이런 경우 흔히 겪어볼만할 것 같은데 님들은 이런 경우 없었던가요?
public static JSONObject POST(String url, JSONObject param)
{
JSONObject result = null;
try{
URL urlCon = new URL(url);
HttpURLConnection httpCon = (HttpURLConnection)urlCon.openConnection();

httpCon.setRequestProperty("Accept","applecation/json");
httpCon.setRequestProperty("Content-type","application/json");

httpCon.setDoOutput(true);
httpCon.setDoInput(true);

OutputStream os = httpCon.getOutputStream();
os.write(param.toString().getBytes("UTF-8"));
os.flush();

try {
InputStream is = httpCon.getInputStream();
if(is != null)
try {
StringBuffer sb = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = is.read(b)) != -1;) {
sb.append(new String(b, 0, n));
}
result = new JSONObject(sb.toString());
}
catch (JSONException e) { e.printStackTrace();}
}
catch (IOException e) { e.printStackTrace(); }
finally { httpCon.disconnect(); }
} catch (MalformedURLException e){ e.printStackTrace();
} catch (IOException e){ e.printStackTrace();}
return result;
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호