2011-01-21 3 views
1

서버로 일부 게시물 데이터를 보내고 응답을 읽으 려합니다. 그들이 제공 한 URL은 https://thesite.com/page/test.jsp,i입니다. $ fp = fsockopen ("https://thesite.com/page/test.jsp", 80, $ errno, $ errstr, 30); 하지만 'HTTPs'오류를 찾을 수 없습니다. 데이터를 말림을 사용하여 보내지 만 서버로 확인했지만 요청을받지 못했습니다. 다른 방법이 있습니까?PHP https 요청 및 응답을 읽는 방법?

+0

이들 중 누구도 질문을 해결하는 데 도움이없는 이유를 지적하시기 바랍니다 + PHP + https + 요청 + 및 + 읽기 + 응답 % 3F + php – Gordon

+0

[PHP를 통해 HTTPS 요청을하고 응답 받기] 가능한 중복 (http://stackoverflow.com/questions/3873187/make-a-https- php-and-get-response를 통한 요청) – Gordon

답변

3

잘못된 포트에 액세스하고 있습니다. HTTPS는 포트 443에서 일반적으로 접근 할 수 있습니다 : 또한

$fp = fsockopen('ssl://example.com', 443, $errno, $errstr, 30); 

, 당신은 fsockopensocket transport 식별자를 지정해야합니다. 이 예에서는 ssl://입니다.

2

goreSplatter의 대답은 정확하지만 여기서 다루는 3 가지 프로토콜 - 소켓 상단에있는 SSL 상단의 HTTP (차례로 IP 스택 맨 위에서 실행)가 있습니다. 접근법은 3 개의 소켓 중 하나만 처리합니다.

goreSplatter의 접근 방식은 여전히 ​​서버와의 통신을 처리하기 위해 자체 HTTP 스택을 구현해야합니다. 이것은 간단한 작업이 아닙니다.

파일 래퍼 (스트림 래퍼를 사용하여 가능할 수도 있음)를 사용하여 데이터를 POST 할 수 있다고 생각하지 않지만 URL에 액세스하고 많은 고통을 덜어주기 위해 cURL을 사용하는 것이 좋습니다. 신뢰할 수없는 인증서가 열리지 않고 웹 사이트,

5

here's one은 내가 simillar 문제가 있고, 문제는 기본적으로, 그 컬이었다 -

당신이 구글에서 찾을 수있는 사례가 많이있다. 따라서이 옵션을 비활성화해야합니다. curl_setopt ($ c, CURLOPT_SSL_VERIFYPEER, false); 그래서 HTTP 요청을 만들기위한 컬의 전체 스크립트는 다음과 같습니다 http://stackoverflow.com/search?q=How+to+make :

$c = curl_init(); 
//webpage to which you try to send post 
curl_setopt($c, CURLOPT_URL, 'https://www.website/send_request.php'); 
curl_setopt($c, CURLOPT_POST, true); 
// data to be sent via post 
curl_setopt($c, CURLOPT_POSTFIELDS, 'var1=324213&var2=432'); 
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 

// Get the response and close the channel. 

curl_exec ($c); 

// read the error code if there are any errors 
if(curl_errno($c)) 
{ 
    echo 'Curl error: ' . curl_error($c); 
} 
curl_close ($c); 
관련 문제