当前位置: 首页 > 面试题库 >

PHP CURL使用POST原始JSON数据

岳嘉悦
2023-03-14
问题内容

我正在使用PHP curl进行发布,由于某种原因,我无法成功发布该表单。

$ch = curl_init();
$headers = [
            'x-api-key: XXXXXX',
            'Content-Type: text/plain'
        ];
$postData = array (
    'data1: value1',
    'data2: value2'
);
curl_setopt($ch, CURLOPT_URL,"XXXXXX");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);           
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$server_output = curl_exec ($ch);

当我尝试在帖子中使用相同功能时,它可以工作,但不适用于PHP。

var_dump($server_output) ==> string(67) ""require data1 and data2 or check the post parameters""
var_dump(curl_error($ch)) ==> string(0) ""

问题答案:

如果您想使用Content-type: application/jsonraw数据,似乎您的数据应采用json格式

$ch = curl_init();
$headers  = [
            'x-api-key: XXXXXX',
            'Content-Type: text/plain'
        ];
$postData = [
    'data1' => 'value1',
    'data2' => 'value2'
];
curl_setopt($ch, CURLOPT_URL,"XXXXXX");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));           
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result     = curl_exec ($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


 类似资料:
  • 无法使用改型2.0在api数据中发送原始数据 MyInterface: 有人能推荐一种解决方案,使用在api中发送原始数据吗?我对改型还不熟悉;当我在方法中得到响应时,请提供帮助。

  • 介绍 有时候,浏览器会通过post发送很多数据。在webpy,你可以这样操作。 代码 class RequestHandler(object): def POST(self): data = web.data() # 通过这个方法可以取到数据

  • 我有邮递员(在Chrome不打开的),我试图使用原始JSON做一个POST请求。 在Body选项卡中,我选择了“raw”和“JSON(application/JSON)”作为主体: 对于头,我有1, 在PHP方面,我只是在做

  • 问题内容: 为了确保我的应用程序不容易受到此漏洞的攻击,我试图在RSpec中创建一个控制器测试来对其进行介绍。为了做到这一点,我需要能够发布原始的JSON,但是我似乎还没有找到实现此目的的方法。在进行一些研究时,我确定至少曾经有一种使用标头的方法,但这似乎不再起作用: 当我查看params哈希值时,完全没有设置令牌,而只包含。在所有情况下,尝试使用XML或什至仅使用常规发布数据时,我都得到相同的结

  • 问题内容: 我正在尝试在Express中编写一个愚蠢的简单Hello World程序,该程序输出有关当前HTTP请求的一些基本数据。 对于POST请求,我想查看原始POST正文。 当我关闭来自邮递员的任何类型的POST请求时,设置为。为什么是空的?如何打印原始POST数据?我不需要POST正文的解析版本,只需原始数据即可。 问题答案: 为了读取发布请求的正文,您需要body-parser。 如果您

  • 问题内容: 我正在使用HTTP POST将数据发送到服务器。但是在服务器中,我没有收到数据。而且我不知道如何在客户端检查数据(或调试脚本)。但是在客户端,我正在获取HTTP 200,这意味着已发送数据。我也可以看到连接和数据发送成功。但是,登录服务器不包含数据(仅包含字节数)。 如何记录发送到服务器的原始POST数据? 仅供参考,此处客户端是功能非常有限的嵌入式设备。所以,这是问题。因此,我无法检