当前位置: 首页 > 知识库问答 >
问题:

将$\u GET cURL请求转换为Laravel 8。x http请求未按预期工作(返回403错误)

皮承基
2023-03-14

我在Postman中有以下cURL请求,它工作得非常好,但是,一旦我将这个cURL请求转换为Laravel 8,就很难获得相同的响应数据。使用HTTP facade的x格式。

curl请求

<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://proclubs.ea.com/api/fifa/clubs/info?platform=ps4&clubIds=1741008');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
  'Referer' => 'https://www.ea.com/'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

Laravel HTTP请求

//增加了使用Illuminate\Support\Facades\Http;在班上名列前茅

    $url = 'https://proclubs.ea.com/api/fifa/clubs/info';
    $params = [
        'platform' => 'ps4',
        'clubIds' => 1741008
    ];

    $response = Http::withHeaders([
        'Referrer' => 'https://www.ea.com/',
    ])->get($url, $params)->json();   
    dd($response);

预期输出

{
    "1741008": {
        "name": "BanterburyFC",
        "clubId": 1741008,
        "regionId": 4344147,
        "teamId": 112092,
        "customKit": {
            "stadName": "Wanda Metropolitano",
            "kitId": "1836515329",
            "isCustomTeam": "0",
            "customKitId": "7623",
            "customAwayKitId": "7623",
            "customKeeperKitId": "5012",
            "kitColor1": "1987272",
            "kitColor2": "0",
            "kitColor3": "16777215",
            "kitAColor1": "16734520",
            "kitAColor2": "0",
            "kitAColor3": "16777215",
            "dCustomKit": "0",
            "crestColor": "1987272",
            "crestAssetId": "99040402"
        }
    }
}

实际输出

null // getting a 403 error response

在Laravel中运行debug()命令时,我可以看到以下错误

旧的SSL会话ID已过时,正在删除*将捆绑包标记为不支持多用途


共有1个答案

娄阳舒
2023-03-14

标题名称拼写错误。它是带有一个而不是两个的Referer。将代码更改为此,它应该可以工作:

$response = Http::withHeaders([
    'Referer' => 'https://www.ea.com/',
])->get($url, $params)->json();
 类似资料:
  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到

  • 问题内容: 我有以下CURL请求,谁能请我确认subesquest HTTP请求是什么? 会是这样吗? 任何人都可以帮助我将上述curl请求完全转换为httpreq。 提前致谢。 苏维 问题答案: 有很多方法可以实现这一目标。在我看来,以下一项是最简单的,同意它不是很灵活,但是可以工作。

  • 问题内容: 我正在尝试学习如何使用AlamoFire,但遇到了麻烦。 到目前为止,我的方法如下: 这将返回nil,这是一个问题。从我在这里阅读的内容来看,这是因为请求可能要花一些时间,因此直到返回之后才执行关闭。建议的将返回值移到闭包中的解决方案对我不起作用,编译器只会大喊大叫(添加后得出的结果是“’String’不是void的子类型”)。提供的其他解决方案也是如此。 有任何想法吗?甚至与该问题无

  • 我正在学习AOP Spring并尝试一些示例。关于@AfterBack ning,我所理解的是,只有当目标成功返回并且与切入点匹配时,才会调用该方法。然而,在我的例子中,如下所示,我有一个切入点,它定义了所有只返回字符串的方法,但它调用了所有空方法以及返回字符串的方法。 我的建议: 请在下面找到我的Impl课程: 请在下面找到我的MainApp类: 我原本希望只调用getCustomer(),因为

  • 我正在尝试将curl中的以下工作请求转换为python请求(使用请求http://docs.python-requests.org/en/v0.10.7/). (请注意,我使用了一个假url,但该命令确实适用于真实url) 接收端(在烧瓶中运行)执行以下操作: 在curl(7.30)中,在Mac OS X(10.9)上运行,上面的命令正确返回使用标记查询过滤的json列表。 我的python脚本如

  • 我试图对我写的rest api执行一个put请求,但它总是返回400-bug请求。 java.io.IO异常:服务器返回HTTP响应代码:400为URL:http://localhost:8000/api/v0/contacts/2sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 我可以用firefox rest客户端