Php API:打开流失败:连接被拒绝
我正在使用求职API在我的Laravel网站上检索招聘广告。 我创建了一个命令来填充数据库,在本地环境中一切正常,但在生产环境中却没有。出现以下错误: -当我测试Curl访问时: 无法连接到api.com端口80 -当我使用文件获取内容时: 无法打开流:连接被拒绝 我查看了网站上的API面板,但我无法提供我的网站域,我不知道问题来自何方 这是我的密码:Php API:打开流失败:连接被拒绝,php,json,laravel,api,curl,Php,Json,Laravel,Api,Curl,我正在使用求职API在我的Laravel网站上检索招聘广告。 我创建了一个命令来填充数据库,在本地环境中一切正常,但在生产环境中却没有。出现以下错误: -当我测试Curl访问时: 无法连接到api.com端口80 -当我使用文件获取内容时: 无法打开流:连接被拒绝 我查看了网站上的API面板,但我无法提供我的网站域,我不知道问题来自何方 这是我的密码: public function handle() { $json_string_o = 'http://api.indeed.com/a
public function handle() {
$json_string_o = 'http://api.indeed.com/ads/apisearch?publisher=PUBLISHER_API_KEY&q='.$request.'&co=au&v=2&latlong=1&fromage=5&limit=10&start=0&format=json&useragent=Mozilla/%2F4.0%28Firefox%29&userip=185.145.156.52';
$response = $this->curl_json ($json_string_o);
$json_data_o = json_decode($response, true);
}
public function curl_json ($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch);
if(curl_error($ch))
{
echo 'error:' . curl_error($ch);
} else {
echo $content;
}
curl_close ($ch);
return $content;
}
有没有人曾经在API上遇到过这个问题
非常感谢尝试添加一个useragent,这有助于解决我卷发时遇到的问题 e、 G:
尝试添加一个useragent,这有助于解决我在卷曲某些东西时遇到的问题 e、 G:
我终于找到了解决我与主机提供商之间问题的方法。这个答案适用于在OVH中主持网站的人 如果您尝试从Laravel命令调用API,它将在localhost中工作,但不会在生产环境中工作。实际上,OVH使用白名单进行外部连接,以使用SSH命令。因此,有两种解决方案:
- 创建一个新命令并插入带有curl函数的代码,以从外部源检索数据(在我的例子中确实如此)
- 在Console/Kernel.php中定义了该命令
- 在服务器的根目录下创建一个名为schedule-run.php的新php文件
- 在OVH管理面板中定义重定向到schedule-run.php文件的新Cron任务
希望它能帮助那些在OVH中托管网站的人。我终于找到了解决托管提供商问题的方法。这个答案适用于在OVH中主持网站的人 如果您尝试从Laravel命令调用API,它将在localhost中工作,但不会在生产环境中工作。实际上,OVH使用白名单进行外部连接,以使用SSH命令。因此,有两种解决方案:
- 创建一个新命令并插入带有curl函数的代码,以从外部源检索数据(在我的例子中确实如此)
- 在Console/Kernel.php中定义了该命令
- 在服务器的根目录下创建一个名为schedule-run.php的新php文件
- 在OVH管理面板中定义重定向到schedule-run.php文件的新Cron任务
希望它能帮助在OVH中托管其网站的用户您的API在邮递员或浏览器中正常工作吗?是的,它在邮递员或浏览器中正常工作吗?是的,它在两者中正常工作谢谢您的回答。我刚刚在API文档中看到,我需要为url提供“userip”和“useragent”参数。我做了,但没用。我尝试在Curl函数中包含用户代理,但它也不起作用。谢谢你的回答。我刚刚在API文档中看到,我需要为url提供“userip”和“useragent”参数。我做了,但没用。我尝试在Curl函数中包含用户代理,但它也不起作用。
public function handle() {
$json_string_o = 'http://api.indeed.com/ads/apisearch?publisher=PUBLISHER_API_KEY&q='.$request.'&co=au&v=2&latlong=1&fromage=5&limit=10&start=0&format=json&useragent=Mozilla/%2F4.0%28Firefox%29&userip=185.145.156.52';
$response = $this->curl_json ($json_string_o);
$json_data_o = json_decode($response, true);
}
public function curl_json ($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch);
if(curl_error($ch))
{
echo 'error:' . curl_error($ch);
} else {
echo $content;
}
curl_close ($ch);
return $content;
}
$userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
curl_setopt($openCurl, CURLOPT_USERAGENT, $userAgent);