gpt4 book ai didi

php - "application/json"类型阻止发送后变量

转载 作者:可可西里 更新时间:2023-11-01 00:52:06 25 4
gpt4 key购买 nike

我发现如果我尝试 PHP POST curl,postvars 发送正常。一旦我添加了 content-type: application/json 的 httpheader,postvars 就不会再出现了。我尝试将 postvars 作为 JSON 字符串和查询字符串。

显示一些代码:

$ch = curl_init();

$post = json_encode(array('p1' => 'blahblahblah', 'p2' => json_encode(array(4,5,6))));

$arr = array();
array_push($arr, 'Content-Type: application/json; charset=utf-8');

curl_setopt($ch, CURLOPT_HTTPHEADER, $arr);
curl_setopt($ch, CURLOPT_URL, 'https://example.com/file.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

curl_exec($ch);
curl_close($ch);

最佳答案

一个真正的 HTTP Post,被 PHP 自动分解成一个数组,必须以名称=值对的形式格式化,在 PHP 中执行此操作的最佳方法是使用 http_build_query 函数。

http://ca2.php.net/manual/en/function.http-build-query.php

PHP 手册中有一个使用 curl 的示例:

http://ca2.php.net/manual/en/function.curl-exec.php#98628

您正在做的是“原始”帖子,请参阅其他问题:

How to post JSON to PHP with curl

获取 RAW Json 数据的快速片段。

<?php

print_r(json_decode(file_get_contents('php://input')));

关于php - "application/json"类型阻止发送后变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023705/

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