gpt4 book ai didi

php - 在 PHP 中处理 cURL

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:39 25 4
gpt4 key购买 nike

我正在尝试将一个登录 Web 界面连接到我在 AWS 上拥有的一个已创建的身份验证事件存储库。我是新手,我尝试使用 Postman 来完成它,并使用 JSON 应用程序的原始模板,如下所示:

{
"userName" : "Victor",
"userPassword" : "pwd123"
}

它工作正常,我从我的存储库中收到了正确的答案。但是当我使用我的 php 项目这样做时,我用完全相同的数据填写表格,我收到状态:403 消息:错误的用户名或密码。

Postman 代码为我提供了 CURLOPT_POSTFIELDS 的解决方案:

CURLOPT_POSTFIELDS => "{\n\t\"userName\" : \"Victor\",\n\t\"userPassword\" : \"pwd123\"\n}",

但是我需要用表格填写这些字段,所以我会按照我将要给你看的方式来更改它们。

这是我正在使用的代码,我真的卡住了,所以我会感谢任何帮助:)

public function loginAction(Request $request)
{
$twigParams=array();
$DTO = new LoginDTO($request, $this->container, null);
$form = $DTO->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {

$upass = $DTO->getUserPass();
$uname = $DTO->getUserName();

$curl = curl_init();

$fields=array("userName"=> $uname, "userPassword"=> $upass);
curl_setopt_array($curl, array(
CURLOPT_PORT => "80",
CURLOPT_URL => "http://wt-services-internal-appl-blablabla..",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $fields ,
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application",
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

$twigParams["form"]=$form->createView();
return $this->render('auth/login.html.twig', $twigParams);
}

最佳答案

我注意到在我的身份验证存储库中,我有 JSON 格式的访问数据,但我没有以 JSON 格式发送数据。为了修复它,我这样做了:

$fields = array("userName" => $uname, "userPassword" => $upass);
$fields = json_encode($fields);

我将该数组放在 CURLOPT_POSTFIELDS 中,并在 CURLOPT_HTTPHEADER 中将“content-type: application”更改为“content-type: application/json”。

这样做解决了问题。

关于php - 在 PHP 中处理 cURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43959808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com