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

如何将原始请求转换为PHP后卷曲请求

宗政小林
2023-03-14

我正在尝试为我的PHP网站使用外展API。关于外联,这是他们提到的要求:

邮递https://api.outreach.io/api/v2/prospects

{“data”:{“attributes”:{“firstName”:“Test_3”,“lastName”:“API”},“type”:“prospect”}

在PHP中,我将其转换为以下代码,但它给出了错误“错误请求”。请帮助我我做错了什么,下面代码中的accessToken具有正确的值。

$urlCreateAccount = "https://api.outreach.io/api/v2/prospects";
$attributes = array("firstName"=> "Sally","lastName"=> "Biu");
$paramsCreateAccount = "type=prospect$attributes=".$attributes;
$headr[] = "Authorization:bearer $accessToken";

$curl = curl_init($urlCreateAccount);
curl_setopt($curl, CURLOPT_HTTPHEADER,$headr);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $paramsCreateAccount);

$jsonResponseCreateAccount = curl_exec($curl);

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

共有2个答案

沈博涉
2023-03-14

它期待JSON,所以你需要发布JSON。像这样的东西...

$data = json_encode($data);
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $access,'Content-Type: application/json','Content-Length: ' . strlen($data)));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
壤驷茂实
2023-03-14

我真的可以说出代码中的错误。但是试一下这个代码。我已经获取了json数据扩展api文档的示例

$jsonData = "{
  "data": {
    "type": "prospect",
    "attributes": {
      "emails": ["sally.smith@acme.example.com"],
      "firstName": "Sally",
      "title": "CEO"
    },
    "relationships": {
      "account": {
        "data": {
          "type": "account",
          "id": 1
        }
      }
    }
  }
}";

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.outreach.io/api/v2/prospects",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>$jsonData,
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/vnd.api+json",
    "Authorization: Bearer <Access Token>",
    "Content-Type: text/plain"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

希望你会得到你的结果。你也可以使用postman首先测试api,从那里你可以从所需的语言中取出代码

 类似资料:
  • 问题内容: 我目前在PHP上大量使用Curl。每次获取大约100页的结果需要花费大量时间。对于每个请求,我都使用这样的代码 我有什么选择可以加快速度? 我应该如何使用等? 问题答案: 重用相同的cURL处理程序($ ch),而无需运行curl_close。这将加快速度。 使用curl_multi_init并行运行进程。这会产生巨大的影响。

  • 我试图使用Postman而不是Web服务的API文档提供的终端命令来请求数据。 curl命令如下: 我怎么能在邮递员内申请这个?我尝试添加和作为请求参数,但这不起作用

  • 有谁能指导我用PHP编码的方法吗? <?xml version=“1.0”encoding=“UTF-8”?> string 响应 <?xml version=“1.0”encoding=“UTF-8”?> 我如何获得关于请求/响应的POST,Host,Content-Type,Content-Length,SOAPAction?

  • 我向我的flask应用所在的服务器发出了python post请求。它运行良好,我能够获得所需的数据。 但我想用POSTMAN测试API。我无法做到这一点,因为在某种程度上我对邮递员并不熟悉。 下面是我的python代码。 我正在努力解决这样一个问题:我试图发布到服务器上的数据和文件应该是原始json还是表单数据,或者是正文的x-www-form-urlencoded部分。还有实际的结构应该是什么

  • 我试图隐藏一个卷曲来吞咽请求,这里是卷曲请求。 以下是JSON部分: