2017-12-21 4 views
0

curl을 사용하여 api에 액세스하려고 시도했지만 https가 아닌 사이트에서 출력을 얻었지만 https 인증 사이트에서이 코드를 업데이트했지만 작동하지 않습니다. 아래의 코드는 https가 아닌 사이트에서 작동합니다. https 사이트에서 http api를 호출하는 데 사용되는 말꼬리

$url = "http://45.116.113.98:8081/WebAP1/api/SchemeMast/1/40/WEBDTG100-/45/-/Prabakaran/S/-/4-44,pillaiyar%20kovil%20street,ko.thoppu%20vill,nochalu/-/Villupuram/Villupuram/Tamil%20Nadu/India/604201/9787162221/9787162221/0.000/100.00/2017-12-21/C"; 
$headers = array(); 
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg'; 
$headers[] = 'Connection: Keep-Alive'; 
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8'; 
$user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; 
$process = curl_init($url); 
curl_setopt($process, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($process, CURLOPT_HEADER, 0); 
curl_setopt($process, CURLOPT_USERAGENT, $user_agent); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
$return = curl_exec($process); 
curl_close($process); 

또한이 방법으로 시도

,

 curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
     curl_setopt($ch, CURLOPT_HTTPGET, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION , 1); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

하지만 모두가 내 HTTPS 사이트에서 작동하지 않습니다

+0

[PHP CURL & HTTPS] (https://stackoverflow.com/questions/4372710/php-curl-https) – IcedAnt

+0

의 가능한 복제본'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE);이 경우에만 충분할 수 있습니다. 그 ..하지만 당신의 URL에 액세스하려고했지만 작동하지 않습니다. 귀하의 컬 스크립트가 좋은 것 같습니다. –

+0

https 사이트에서 작동하지 않습니다. 동일한 http 사이트에서 작동합니다. –

답변

0

의 문제가이 설명되어 있습니다 :

curl -i https://45.116.113.98:8081 
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

here

enter image description here

그것은 프로토콜이 지원되지 않습니다 HTTPS 것을 의미한다, 사이트가 HTTPS
를 지원하도록 구성되어 있지 않거나 (기본 : HTTP -> 80, HTTPS -> 443) 잘못된 포트를 사용하고 어쩌면 때문에
.

+0

내 사이트 이름은 https://www.srisaravanajewellers.in입니다. api를 호출합니다. http://45.116.113.98:8081 –

+0

이 경우 api 45.116.113.98:8081은 https 프로토콜을 지원하지 않습니다. 지원팀과 통신하여 https를 구성하도록 요청해야합니다. –

+0

그러나'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE) '를 사용하지 마십시오. 불안전 한 연결을 통해 보안 정보를 보낼 때 상황이 끝날 수 있습니다. –

관련 문제