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

안드로이드 Https 통신 문의 건

0 추천

현재 안드로이드 앱에서 해외 웹서버(Https)로 통신하여 데이터를 주고 받는 어플을 개발 중입니다.

해외 업체에서는 인증서가 필요없다고 해서

인증서를 무시하는 코드를 구현 후에 아래와 같이 openConnection()을 맺고 있습니다만,

HttpsURLConnection mHttpsConn = (HttpsURLConnection) url.openConnection();

디버깅 모드에서 위의 코드 실행 후,  mHttpsConn 객체 필드의 [connected] 필드가 false로 보여집니다.

false임에도 불구하고 아래의 코드를 실행 후,

mHttpsConn.setRequestMethod("POST");

mHttpsConn.setDoInput(true);

mHttpsConn.setDoOutput(true);

데이터를 전송합니다.

OutputStream os = mHttpsConn.getOutputStream();

os.write(strParams.getBytes("Shift_JIS")); // 출력 스트림에 출력.

os.close();

질문1 : connected = false 라는 것은 서버와 통신이 안되었다는 뜻이 맞나요?

질문2 : 웹서버와 연결이 돼서 write가 제대로 되었는지 확인 가능한 방법이 있을까요?

계속해서 위의 코드를 실행 후, 아래의 코드를 실행하는데 EOF Exception이 발생합니다.

mHttpsConn.connect() ;            // mHttpsConn의 connected 필드는 true가 됩니다

if (mHttpsConn.getResponseCode() != HttpURLConnection.HTTP_OK

     return null;

BufferedReader reader = new BufferedReader(new InputStreamReader(mHttpsConn.getInputStream(), "UTF-8"));

java.io.EOFException

at com.android.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:98)

EOF Exception 을 검색해보니 End Of File 이라고 하는데 접속은 되었는데 응답데이터가 없는게 건가요..? 정확한 의미를 알고 싶습니다.

디버깅 모드에서 getResponseCode를 찍어보면, errors라고 보여지는데..정확한 원인을 잘 모르겠습니다..

해결방안 및 도움 부탁드립니다.

 

 

쮸뿌쮸뿌 (2,470 포인트) 님이 2017년 10월 19일 질문
쮸뿌쮸뿌님이 2017년 10월 19일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...