$newLogUrl = SERVER URL PATH
$opt = array('http' => array(
'method' => "POST",
'header' => 'Content-type: application/json',
'content' => $jsonCredenObj,
'timeout' => 4));
$context = stream_context_create($opt);
$response = file_get_contents($newLogUrl,false,$context);
以上代码在正常的http中工作,但在安全服务器https
中不起作用错误
Warning: file_get_contents(): failed to open stream: HTTP request failed! HTTP/1.1 405 Method Not Allowed
答案 0 :(得分:3)
请求行中指定的方法不允许使用 Request-URI标识的资源。响应必须包括一个 允许包含所请求的有效方法列表的标头 资源。 同样提到
MarcB
时,您要连接的相应网址不接受POST
方法。
请务必检查标题的网址,了解他们接受哪些方法等等。您可以使用$http_response_header
进行此操作..
<?php
file_get_contents('http://thatremoteurl.com');
var_dump($http_response_header);
您需要在PHP.ini上启用openssl
扩展名。
打开您的PHP.ini并检查此行;extension=php_openssl.dll
。删除前面的分号并保存文件并重新启动网络服务器。