我在laravel应用程序中的一个函数上出现此错误。昨天一切正常。
cURL错误56:SSL读取:错误:00000000:lib(0):func(0):reason(0),errno 104(参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)
在CurlFactory.php第187行中 CurlFactory :: createRejection(object(EasyHandle),array('errno'=> '56','错误'=> 'SSL读取:错误:00000000:lib(0):func(0):reason(0), errno 104','url'=> 'https://server7.phasehosting.io:2087/json-api/dumpzone?&domain=phasedev.be', 'content_type'=> null,'http_code'=> '0','header_size'=> '0', 'request_size'=> '1174','filetime'=> '-1','ssl_verify_result'=> '0','redirect_count'=> '0','total_time'=> '2.30737', 'namelookup_time'=> '0.004516','connect_time'=> '0.02006', 'pretransfer_time'=> '0.06986','size_upload'=> '0','size_download' => '0','speed_download'=> '0','speed_upload'=> '0','download_content_length'=> '-1','upload_content_length'=> '-1', 'starttransfer_time'=> '0','redirect_time'=> '0','redirect_url'=> '','primary_ip'=> '37 .97.192.223','certinfo'=>阵列(), 'primary_port'=> '2087','local_ip'=> '10 .0.2.15','local_port'=> '48858'))在CurlFactory.php第150行
当我为API调用指定了错误的参数时,我得到了一个服务器错误响应,我需要定义正确的参数,当我指定正确的参数时,我得到了Curl错误。
当使用邮递员发出请求时,我得到了成功的回复
其他API调用可以按预期工作。所以我现在很困惑。我应该在哪里看?
这是运行查询的函数:
protected function runQuery($action, $arguments)
{
$host = $this->getHost();
$client = new Client(['base_uri' => $host]);
try{
$response = $client->post('/json-api/' . $action, [
'headers' => $this->createHeader(),
// 'body' => $arguments[0],
'verify' => false,
'query' => $arguments,
'timeout' => $this->getTimeout(),
'connect_timeout' => $this->getConnectionTimeout()
]);
return (string) $response->getBody();
}
catch(\GuzzleHttp\Exception\ClientException $e)
{
return $e->getMessage();
}
}
答案 0 :(得分:0)
你使用哪个版本的Guzzle?确保它不是过时的。最近,由于BC问题,Guzzle碰撞了版本。
答案 1 :(得分:0)
我遇到了这个问题,终于解决了。
在将任何内容压入页眉之前,请确保将其echo
推出。您还可以一次使用dd($some_header_variable)
并注意每个标题变量。 特别注意保存URL值的变量。
就我而言,我拥有的标头变量之一没有解析为正确的值。不幸的是,看来,耗时不对标头进行任何错误处理。
对于您的情况,首先,尝试在浏览器中访问dd($host)
,并断言显示了$host
的预期值。