403 服务器禁止(API、Laravel)

问题描述 投票:0回答:2

本地可以工作,但在生产中它返回 403。相同的 PHP 和 Laravel 版本。有什么我可以做的吗?

$url = 'https://admin.appmax.com.br/api/v3/order/'.$order_id.'?access-token='.$token;            
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
curl_close($curl);`

我做了所有测试,它不仅仅在生产中有效。

php laravel curl
2个回答
0
投票

您将 CURLOPT_POST 设置为 true,这表明您要发送 POST 请求,但您还将 CURLOPT_CUSTOMREQUEST 设置为“GET”,这表明您要发送 GET 请求。您应该删除 CURLOPT_POST 选项,因为您正在发送 GET 请求。

您都没有将访问令牌作为标头传递。您将其作为 URL 中的查询参数传递。

此外,在使用curl_error 处理响应之前检查响应是否有错误。

以下应该有效。

$url = 'https://admin.appmax.com.br/api/v3/order/'.$order_id.'?access-token='.$token;            
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);

if ($response === false) {
    echo 'cURL Error: ' . curl_error($curl);
    return;
}

$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($httpCode != 200) {
    echo 'Error: ' . $httpCode;
    return;
}

curl_close($curl);
// process $response

0
投票

问题是服务器权限,他们解决了。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.