发出 GET Curl 请求时使用时间戳参数出错
Posted
技术标签:
【中文标题】发出 GET Curl 请求时使用时间戳参数出错【英文标题】:Error using timestamp parameter when making GET Curl request 【发布时间】:2022-01-22 10:04:42 【问题描述】:在使用 Curl 发出 GET 请求时在日期参数中使用时间戳时,我收到 “403 Forbidden” 错误。
这是我使用 Curl 发出 GET 请求的代码:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
$http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
当仅使用参数中的日期时,它按预期工作:
$url = "https://api.unleashedsoftware.com/Customers?modifiedSince=2021-12-20";
但是,包括时间格式会导致 “403 Forbidden” 错误。
$url = "https://api.unleashedsoftware.com/Customers?modifiedSince=2021-12-20T10:00:10";
这个我也试过了,还是不行:
$url = "https://api.unleashedsoftware.com/Customers?modifiedSince=2021-12-20T10%3A00%3A00";
我已经在应用程序沙箱中直接使用相同的 URL 参数进行了测试,以检查它是否接受这些参数,它确实可以正常工作:
任何帮助将不胜感激。
谢谢
【问题讨论】:
您是否尝试过对参数值应用正确的 URL 编码?当您向 cURL 传递一个已经完全组装好的 URL 时,cURL 不会自行为您执行此操作。 【参考方案1】:我认为查询中不允许使用 ':',请尝试在 '' 之间使用日期时间 或者使用数据传递日期时间值
【讨论】:
以上是关于发出 GET Curl 请求时使用时间戳参数出错的主要内容,如果未能解决你的问题,请参考以下文章
关于在php中使用curl发送get请求时参数传递问题的解析