需要将命令行 (Linux) CURL 转换为带有请求数据负载 (" -d ") 的 PHP CURL
Need to convert command line (Linux) CURL to PHP CURL with request data payload (" -d ")
这是命令行 CURL 代码:-
curl -X POST "http://{$HOST}/api/1/videos.json" \
-H "Content-type: application/json" \
-H "X-Reseller-Email: $RESELLER" \
-H "X-Reseller-Token: $TOKEN" \
-H "X-User-Email: $USER" \
-d '{"video":{
"title": "My video from API",
"description": "Description from API",
"video_template_id": "16",
"track_id": "26",
"texts": [
{
"layer": "VLN_txt_01",
"value": "My text 1"
}
],
"images": [
{
"layer": "VLN_icon_01",
"source": "icon",
"icon_id": "1593"
}
]
}}'
请帮助我将其转换为 PHP CURL 调用。另外,我需要使用 POST 和 PUT 方法进行调用。我已经找到了但无法转换 PHP.
中的数据有效负载
我只需要知道如何在 PHP 中写入“-d”(数据),它的影响与 PHP 中的命令行 CURL 调用相同。
您必须结合使用 CURLOPT_POSTFIELDS
选项和 CURLOPT_HTTPHEADER
。 CURLOPT_POSTFIELDS
选项必须设置为 JSON 字符串,并且 CURLOPT_HTTPHEADER
- 包含所有需要的 HTTP headers(包括 Content-type
)的数组。
所以代码应该是这样的:
$json = '{"video":{
"title": "My video from API",
"description": "Description from API",
"video_template_id": "16",
"track_id": "26",
"texts": [
{
"layer": "VLN_txt_01",
"value": "My text 1"
}
],
"images": [
{
"layer": "VLN_icon_01",
"source": "icon",
"icon_id": "1593"
}
]
}}';
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "http://{$HOST}/api/1/videos.json",
CURLOPT_NOBODY => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $json,
CURLOPT_HTTPHEADER => array(
"Content-type: application/json",
"X-Reseller-Email: $RESELLER",
"X-Reseller-Token: $TOKEN",
"X-User-Email: $USER",
),
));
$response = curl_exec($ch);
if ($response && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200)
echo $response;
这是命令行 CURL 代码:-
curl -X POST "http://{$HOST}/api/1/videos.json" \
-H "Content-type: application/json" \
-H "X-Reseller-Email: $RESELLER" \
-H "X-Reseller-Token: $TOKEN" \
-H "X-User-Email: $USER" \
-d '{"video":{
"title": "My video from API",
"description": "Description from API",
"video_template_id": "16",
"track_id": "26",
"texts": [
{
"layer": "VLN_txt_01",
"value": "My text 1"
}
],
"images": [
{
"layer": "VLN_icon_01",
"source": "icon",
"icon_id": "1593"
}
]
}}'
请帮助我将其转换为 PHP CURL 调用。另外,我需要使用 POST 和 PUT 方法进行调用。我已经找到了但无法转换 PHP.
中的数据有效负载我只需要知道如何在 PHP 中写入“-d”(数据),它的影响与 PHP 中的命令行 CURL 调用相同。
您必须结合使用 CURLOPT_POSTFIELDS
选项和 CURLOPT_HTTPHEADER
。 CURLOPT_POSTFIELDS
选项必须设置为 JSON 字符串,并且 CURLOPT_HTTPHEADER
- 包含所有需要的 HTTP headers(包括 Content-type
)的数组。
所以代码应该是这样的:
$json = '{"video":{
"title": "My video from API",
"description": "Description from API",
"video_template_id": "16",
"track_id": "26",
"texts": [
{
"layer": "VLN_txt_01",
"value": "My text 1"
}
],
"images": [
{
"layer": "VLN_icon_01",
"source": "icon",
"icon_id": "1593"
}
]
}}';
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "http://{$HOST}/api/1/videos.json",
CURLOPT_NOBODY => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $json,
CURLOPT_HTTPHEADER => array(
"Content-type: application/json",
"X-Reseller-Email: $RESELLER",
"X-Reseller-Token: $TOKEN",
"X-User-Email: $USER",
),
));
$response = curl_exec($ch);
if ($response && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200)
echo $response;