通过 CURL POST JSON 数据并抓取它

2023-12-10

我正在尝试传递 json 数据作为 cURL POST 的参数。然而,我坚持抓住它并将其保存在数据库上。

卷曲文件:

$data = array("name" => "Hagrid", "age" => "36");                                                                    
$data_string = json_encode($data);                                                                                   

$url = 'http://localhost/project/test_curl';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
                                    'Content-Type: application/json')                                                                                           
                                    );                       
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                                                     

$result = curl_exec($ch);  

//based on http://www.lornajane.net/posts/2011/posting-json-data-with-php-curl

test_curl 文件:

    $order_info = $_POST; // this seems to not returning anything

    //SAVE TO DB... saving empty...

我错过了什么?威威....


您在正文中以原始 JSON 形式发送数据,它不会填充$_POST多变的。

您需要执行以下两件事之一:

  1. 您可以将内容类型更改为将填充的内容类型$_POST array
  2. 您可以读取原始身体数据。

如果您可以控制通信的两端,我会推荐选项二,因为它会将请求正文大小保持在最小,并随着时间的推移节省带宽。 (编辑:我在这里并没有真正强调,它将节省的带宽量可以忽略不计,每个请求只有几个字节,这只会在非常高的流量环境中有效。不过我仍然推荐选项二,因为这是最干净的方法)

In your test_curl文件,执行以下操作:

$fp = fopen('php://input', 'r');
$rawData = stream_get_contents($fp);

$postedJson = json_decode($rawData);

var_dump($postedJson);

如果你想填充$_POST变量,您将需要更改将数据发送到服务器的方式:

$data = array (
  'name' => 'Hagrid',
  'age' => '36'
);

$bodyData = array (
  'json' => json_encode($data)
);
$bodyStr = http_build_query($bodyData);

$url = 'http://localhost/project/test_curl';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/x-www-form-urlencoded',
  'Content-Length: '.strlen($bodyStr)
));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $bodyStr);

$result = curl_exec($ch);

原始的、未解码的 JSON 现在可以在$_POST['json'].

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 CURL POST JSON 数据并抓取它 的相关文章

  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • 以本地语言输出的日期函数[重复]

    这个问题在这里已经有答案了 我正在尝试使用意大利语格式输出日期date 如下 然而 它仍然以英文格式发布 我还能做什么 有什么不对 该解决方案必须是特定于脚本的 而不是服务器范围的 date 不支持区域设置 你应该使用strftime 及其
  • 从不同按钮切换模式弹出窗口

    我试图从菜单中的不同按钮打开此弹出窗口 但是 弹出窗口内容将保持不变 Thanks Banick function OpenModalT var modal document getElementById myModalT modal st
  • 如何使用RecyclerView android仅选择一个RadioButton?

    我有一个带有RadioButton的RecyclerView 我只想同时选择一个不多的RadioButton 我的代码使它工作正常 但是当我从上到下重复选择时 选择消失了 我该如何修复它 谢谢 private RadioButton las
  • 异常:AAPT2 错误:检查日志以获取详细信息

    Task processDebugResources Failed to execute aapt com android ide common process ProcessException Failed to execute aapt
  • Blazor WebAssembly 发布失败

    我正在尝试发布一个针对 NET 5 0 的 Blazor WebAssembly 应用程序 我使用默认设置从 Visual Studio 2019 创建了一个新的 Web 部署发布配置文件 该网站已发布到 IIS 但浏览器显示 500 19
  • Angular:点击浏览器后退按钮将用户带回家[重复]

    这个问题在这里已经有答案了 如果用户位于我的角度平台中 当用户单击浏览器的后退按钮时 我想将用户带到主页 还有一个边缘情况需要处理 如果用户通过谷歌搜索 Facebook 或直接输入链接来到我们的平台 那么我们不能执行此行为 但如果他已经在
  • Jenkins 和 NodeJS 插件 - 权限被拒绝错误

    我已经成功地在 Raspberry Pi 上设置了一个 Jenkins 实例 并且在最终遇到这个绊脚石之前已经安装了 NodeJS 插件 Started by an SCM change Building in workspace var
  • Protobuf-net 序列化枚举值超出范围

    C 允许将任何整数值分配给 enum 当我尝试使用值超出范围的枚举字段序列化 通过 protobuf net 对象时 它会抛出异常 没有线值映射到枚举 PersonLevel 我的枚举 PersonLevel 没有 Flags 属性 Pro
  • glBufferData分配的内存什么时候释放?

    假设我为统一缓冲区分配内存 如下所示 GLuint length 0x1000 GLuint myBuffer glGenBuffers 1 myBuffer glBindBuffer GL UNIFORM BUFFER myBuffer
  • 抛出奇怪的 org. Threeten.bp.DateTimeException ?

    我的代码运行得很好 今天突然我开始遇到这个异常 org threeten bp DateTimeException Field DayOfMonth cannot be printed as the value 1872095944 max
  • PHP 转换特殊字符,如 ş 到 s、ţ 到 t、ă 到 a

    我不知道如何命名我需要的内容 我想在 PHP 中将字符转换为更 正常 的字符集 例如 to become s to become t to become a 我有罗马尼亚城镇名称 我想在 URL 中使用更多 正常 字符 我想我想将罗马尼亚字
  • 退出时删除共享内存

    我有两个脚本 一个用于创建和写入共享内存块 第二个用于读取该共享内存 问题是 当第一个脚本结束时 即使我不取消链接 共享内存也会被删除 这是我的第一个脚本 import argparse import csv import os impor
  • 模板中的读取路径[重复]

    这个问题在这里已经有答案了 有没有办法读取当前页面的路径 例如 我在 www example com foo bar 我想阅读 foo bar 我必须在模板文件中执行此操作而不修改视图 并且我有太多视图文件而无法编辑每个视图文件 Cheer
  • 在可序列化对象上获取 NotSerializedException

    基本上 我编写了一个程序 将形状绘制到屏幕上 并将每个形状保存到 ArrayList 中 我想要做的是弄清楚如何将 ArrayList 保存到文件中 以便我可以稍后调用它并编辑已经存在的形状 因此 当我已经将对象 Shape 可序列化时 我
  • 在 HTML 页面上并排显示两个图像

    我试图并排放置两个相同大小的图像 如果我使用一个table然后我就可以并排显示两个图像 但在我的 CSS 样式表中 我对表格使用了自定义格式 这也显示在包含图像的页面上 我想只显示两个图像 没有任何自定义背景 边框等 我尝试使用div sp
  • 字符串前面的 b 有何作用?

    binary b Binary string 创建一个字符串会产生什么后果binary 我在文档中找不到任何关于此的提示 刚刚在浏览 language scanner 时发现了这个小小的好奇心 这是永远不会发布的 PHP 版本 6 的前向兼
  • 是否有另一种方法在工作人员中加载额外的包(并行计算)?

    R 中并行化的一种方法是通过snowfall包裹 要将自定义函数发送给工作人员 您可以使用sfExport 参见乔里斯的帖子here 我有一个自定义函数 它依赖于非基本包中未自动加载的函数 因此 当我并行运行我的函数时 R 会崩溃 因为某些
  • 使用 iText 提取文本不起作用:编码或加密文本?

    我有一个 pdf 文件 其安全属性如下 打印 允许 文件组装 不允许 内容复制 允许 可访问性内容副本 允许 页面提取 不允许 我尝试获取带有示例代码的文本作为文档示例 如下所示 pdftext Text null StringBuilde
  • Rails 3 public_activity,销毁记录

    我正在使用公共活动如果用户创建帖子 则进行 gem 跟踪 有没有办法在删除帖子时销毁公共活动记录 以便在活动源中不会显示类似以下内容的内容 A post was deleted 而只是删除活动表中的特定活动 Thanks 我认为这就是OP正
  • 通过 CURL POST JSON 数据并抓取它

    我正在尝试传递 json 数据作为 cURL POST 的参数 然而 我坚持抓住它并将其保存在数据库上 卷曲文件 data array name gt Hagrid age gt 36 data string json encode dat