【发布时间】:2021-01-18 11:54:32
【问题描述】:
我正在尝试从 api 获取记录。它在邮递员上正常工作,但是当我在 php 中使用 curl 时出现错误。
这是我的 PHP 代码:
function GETAPISRecord(){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => https://data.medicare.gov/resource/6jpm-sxkc.json?$where=provider_number in("017000","017037","017055","017056","017116","017319","017324"),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"cache-control: no-cache",
),
));
$response = curl_exec($curl);
if($debug){
// dd($url);
dd($response);
}
return json_decode($response, true);
}
这是我在 curl 后遇到的错误: error after curl option
在 Postman 上,它按预期给出了完美的结果: postman result
此外,api url 工作完美,没有任何搜索参数。如果我们使用像 zipcode filter 这样的 zip_code 过滤器也可以正常工作,唯一的问题是 $where=provider_number in("017000","017037","017055","017056","017116", "017319","017324")
如果有人知道如何在 Laravel 中解决这个问题,他也可以回答这个问题。
编辑:添加邮递员中的卷曲标题 curl 7 headers
【问题讨论】:
-
不要发布文字图片
-
邮递员请求显示您为请求设置了 7 个标头,在 curl 中您只设置了 2 个,其他 5 个是什么?如果您显示邮递员的所有请求详细信息的屏幕截图可能会有所帮助
-
只是一个猜测,但也许你需要像
CURLOPT_URL => urlencode ( 'https://data.medicare.gov/resource/6jpm-sxkc.json?$where=provider_number in("017000","017037","017055","017056","017116","017319","017324")')这样对url进行编码 -
@WesleySmith 刚刚添加了这 7 个标题,您可以查看一下。
标签: php laravel api curl php-curl