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

JAVA,안드로이드 HTTP GET 방식 HTTPS 적용하는 방법

+1 추천

안녕하세요 프로그램 개발중인 학생입니다.

 
안드로이드에서 GET 방식을 이용하여 https://xxx.xxx.xx.xxx:443/aaaa.php 를 호출하려고 합니다.
Socket socket1 = new Socket(host1, port1);
OutputStream out1;
out1 = socket1.getOutputStream();
out1.write(("GET aaaa.php HTTP/1.1\r\nHost: xxx.xxx.xx.xxx:443/\r\nCookie: PHPSESSID="+ item.get(position).token + ";\r\n\r\n\r\n").getBytes());
 
라는 방식으로 호출을 하려고 하는데, 아무리 해봐도 되지를 않네요. 
 
패킷을 까보니 
 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="https://127.0.0.1/"><b>https://127.0.0.1/</b></a></blockquote></p>
<hr>
<address>Apache Server at <a href="mailto:admin@localhost">127.0.0.1</a> Port 443</address>
</body></html>
 
라는 값이 들어있더라구요..
정확히 어느 부분에서 문제가 발생하여 접근이 안되는지 모르겠습니다.
aaaa.php는 정상작동함을 확인하였구요. 
제 생각으로는 HTTP/1.1 부분 또는 Host부분에서 문제가 발생한 것 같은데 정확히 아시는분이
설명해주시면 감사하겠습니다 ㅠㅠ
 
daniailsh 님이 2015년 7월 17일 질문

2개의 답변

0 추천

127.0.0.1은 localhost입니다. php사이트 주소나 ip를 입력하세요

익명사용자 님이 2015년 7월 17일 답변
0 추천

127.0.0.1이 있는 걸로 봐서는 로컬피씨에 서버를 돌리고 있네요

400응답이 온 걸로 봐서는 말 그대로 bad request

 

웹브라우저에서 http://xxx.xxx.xx.xxx:443/aaaa.php 라고 입력하면 정상적으로 나오나요? (https가 아니라 http)

https로 연결해야 하는데, http로 연결해서 문제가 발생한 게 아닌가 싶네요

cc1232 (35,280 포인트) 님이 2015년 7월 17일 답변
https로 연결하는 방법이 따로있나요?
서버는 local이고 외부에서 접속가능하도록 443포트를 포워딩해 놨습니다.
https://로는 접속이 가능하나 http://로는 접속이 되지않습니다.
GET방식을 사용하는데 있어서 https를 호출하는 방법이 따로 찾아봐도 없더라구요.. 혹시 다른 방법이 있을까요?
...