美文网首页
php 不解析put请求中form_data类型的数据

php 不解析put请求中form_data类型的数据

作者: Zeaone | 来源:发表于2019-12-20 14:21 被阅读0次

问题

使用postman测试接口时发现,请求方式为put的接口,如果使用form_data类型做参数如图1,则$_POST 数组为空。使用 file_get_contents('php://input' 获取的参数为字符串。如图2

图1
图2

原因


POST和PUT请求之间的根本区别体现在
Request-URI的不同含义。POST请求中的URI标识
处理封闭实体的资源。该资源可能是
数据接受过程,通往某些其他协议的网关或单独的实体
接受注释。相反,PUT请求中的URI标识了
请求中包含的实体-用户代理知道要使用的URI
并且服务器不得尝试将请求应用于其他资源。如果
服务器希望将请求应用于其他URI,它必须发送
301(永久移动)响应;然后用户代理可以自己制作
有关是否重定向请求的决定。”

这意味着HTTP RFC不允许我们识别multipart / form-
PUT请求中的数据。

因此,您提议的关于PHP已经如何处理请求的实现将随后
将PHP置于不符合规范的位置。PUT用于
不同于POST的规范,因此修改了PHP以平等对待它们
不会是一个理智的解决方案。

但是,尽管有一些简单的步骤可以完成您想要的
这将违反HTTP规范。


上边是谷歌翻译的

原文链接

https://bugs.php.net/bug.php?id=55815

解决

1.将form_data方式换成x-www-form-urlencoded
2.没试过如图3

图3

相关文章

  • php 不解析put请求中form_data类型的数据

    问题 使用postman测试接口时发现,请求方式为put的接口,如果使用form_data类型做参数如图1,则$_...

  • 基本常见语法集

    一、变量和数据类型 1.‘’单引号不可以解析变量;“”双引号可以解析变量 2、PHP的数据类型 3、PHP数据类型...

  • PHP CURL

    PHP 利用 curl 发送 post get del put patch 请求因为需要在 php 开发中对接其它...

  • php变量和数据类型

    php中的变量 PHP中的变量声明 PHP中的变量的使用 PHP中的数据类型之整型 PHP数据类型之浮点类型和布尔...

  • 可信计算 RESTFul API

    简介 api接口列表 共享数据管理 任务管理 请求方式说明 PUT和POST请求方式,参数请求类型为formdat...

  • hbase读写源码

    write以put为例客户端流程解析(1)用户提交put请求后,HBase客户端会将put请求添加到本地buffe...

  • postman发送请求

    POST请求 这里类型一定要选正确,不然req.body无法拿到postman传递的数据 PUT 请求 勾选raw...

  • Android 与 PHP后台通信 2019-04-17

    1、Android用post请求时设置数PHP端识别的数据类型 2、PHP端: 3、后端数据处理

  • 关于PHP的数据类型(一)

    php 中的数据类型: php 中支持 8 种数据类型标量类型:boolean(布尔型), integer (整型...

  • php curl put 调用阿里云oss接口上传文件

    阿里云oss官方接口请求语法 下面是PHP代码,用的curl 执行put请求。

网友评论

      本文标题:php 不解析put请求中form_data类型的数据

      本文链接:https://www.haomeiwen.com/subject/msfinctx.html