gpt4 book ai didi

php - 如何在 PHP 中创建 cURL POST 请求

转载 作者:可可西里 更新时间:2023-10-31 23:45:53 25 4
gpt4 key购买 nike

我正在尝试了解如何创建 PHP cURL POST 请求。我有以下代码可以使用。我对 -g -X 和 -H 的含义有点困惑。

curl -g -X POST -H 'Authorization: bearer <access_token>' -d 'superTasks=["IEAE34A4KQATKP4S"]&metadata=[{"key":"testMetaKey","value":"testMetaValue"}]&priorityBefore=IEAE34A4KQATKP4S&importance=High&customFields=[{"id":"IEAE34A4JUAADKT3","value":"testValue"}]&description=Test task description&dates={"start":"2016-05-18","due":"2016-05-25"}&title=Test task&follow=true&followers=["KUAHYFH4"]&responsibles=["KUAHYFH4"]&shareds=["KUAHYFH4"]&parents=["IEAE34A4I4ATKP4L"]&status=Active' 'https://www.wrike.com/api/v3/folders/IEAE34A4I4ATKP4L/tasks'

非常感谢任何帮助。

编辑添加以下代码:

$postData = array(
"title" => "Test task",
"description" => "Test task description",
"status" => "Active",
"importance" => "Normal",
"dates" => {"start":"2016-05-18","due":"2016-05-25"},
"shareds" => ["KUAHYFH4"],
"parents" => ["IEAE34A4I4ATKP4L"],
"responsibles" => ["KUAHYFH4"],
"followers" => ["KUAHYFH4"],
"follow" => "true",
"priorityBefore" => "IEAE34A4KQATKP4S",
"priorityAfter" => "IEAE34A4KQATKP4S",
"superTasks" => "["IEAE34A4KQATKP4S"]",
"metadata" => "[{"key":"testMetaKey","value":"testMetaValue"}]"),
"customFields" => [{"id":"IEAE34A4JUAADKT3","value":"testValue"}],
"customStatus" => "string"
);

$handler = curl_init();

curl_setopt($handler, CURLOPT_URL, "https://www.wrike.com/api/v3/folders/IEAE34A4I4ATKP4L/tasks");
curl_setopt($handler, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($handler, CURLOPT_POST, true);
curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, false);

curl_exec($handler);

通过执行 curl -h 我得到了以下信息:

-g, --globoff 使用 {} 和 [] 禁用 URL 序列和范围

-X, --request COMMAND 指定要使用的请求命令

-H, --header LINE 将自定义 header LINE 传递给服务器 (H)

-d, --data DATA HTTP POST 数据 (H)

但我不知道如何添加这些属性。

最佳答案

问题可能在于您对 $postData 数组中的值进行格式化的方式。包括 JSON 文本在内的所有值都应该用单引号引起来。看看我是怎么做到的,尽管响应是一个我认为是有效错误的错误

$postData = array(
"title" => "Test task",
"description" => "Test task description",
"status" => "Active",
"importance" => "Normal",
"dates" => '{"start":"2016-05-18","due":"2016-05-25"}',
"shareds" => '["KUAHYFH4"]',
"parents" => '["IEAE34A4I4ATKP4L"]',
"responsibles" => '["KUAHYFH4"]',
"followers" => '["KUAHYFH4"]',
"follow" => "true",
"priorityBefore" => "IEAE34A4KQATKP4S",
"priorityAfter" => "IEAE34A4KQATKP4S",
"superTasks" => '["IEAE34A4KQATKP4S"]',
"metadata" => '[{"key":"testMetaKey","value":"testMetaValue"}]',
"customFields" => '[{"id":"IEAE34A4JUAADKT3","value":"testValue"}]',
"customStatus" => "string"
);

$handler = curl_init();
$access_token = "<access_token>";
$headers[] = 'Authorization: bearer '.$access_token;


curl_setopt($handler, CURLOPT_URL, "https://www.wrike.com/api/v3/folders/IEAE34A4I4ATKP4L/tasks");
curl_setopt($handler, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($handler, CURLOPT_HTTPHEADER,$headers);
curl_setopt($handler, CURLOPT_POST, true);
curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($handler);

if($response !==false)
{
var_dump($response);
}
else {
print "Could not get a response";
}

响应是

{"errorDescription":"Access token is unknown or invalid","error":"not_authorized"}

关于php - 如何在 PHP 中创建 cURL POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634033/

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