현재 안드로이드 앱에서 해외 웹서버(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라고 보여지는데..정확한 원인을 잘 모르겠습니다..
해결방안 및 도움 부탁드립니다.