问题标签 [psr-7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 将 PSR-7 响应转换为 Symfony 响应
我编写了一个实现 PSR-7 接口的自己的 HTTP 库。我在第二个库中使用这个库,该库执行一些业务逻辑,并可能返回 PSR-7 标准中的响应或请求。
对于我的应用程序,我使用 Silex / Symfony 模块。在控制器中,我必须返回一个 Symfony 响应。
如何将 PSR-7 响应转换为 Symfony 响应?我只发现反之亦然的桥梁,将 Symfony 响应转换为 PSR-7 响应。
php - Zend PSR7 不能在 Lumen 上工作?
Zend PSR7 似乎不适用于 Lumen:
第一个“错误”:
第二个错误:
任何想法为什么?
Slim3 似乎更容易,更直接!
php - 如何使用 PSR-7 响应?
我的应用程序中的大多数响应是视图或 JSON。我不知道如何将它们放在ResponseInterface
PSR -7中实现的对象中。
这是我目前所做的:
这是我试图用 PSR-7 做的事情:
而且我认为 JSON 响应只是具有不同的标头,这将是相似的。据我了解,消息正文是 aStreamInterface
并且当我尝试输出创建的文件资源时它可以工作,fopen
但我如何使用字符串来做到这一点?
更新
Http\Response
在我的代码中实际上是我自己ResponseInterface
在 PSR-7 中的实现。我已经实现了所有接口,因为我目前坚持使用 PHP 5.3,并且找不到任何与 PHP < 5.4 兼容的实现。这是 的构造函数Http\Response
:
我可以修改我的实现以接受输出作为构造函数参数,或者我可以使用实现的withBody
方法MessageInterface
。不管我怎么做,问题是如何将字符串放入流中。
php - 新的(Json)响应显示空白页(Symfony HttpFoundation)
我在我的小项目中使用 HttpFoundation:use \Symfony\Component\HttpFoundation\JsonResponse as JsonResponse;
不幸的是,我所有的回复(尝试过JsonResponse
,Response
和BinaryFileResponse
)只返回一个空白页,没有错误并且代码正常执行,例如
日志中也没有错误。
任何想法如何解决这个问题?
//更新澄清
返回HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json {"result":"error","message":"Encrypt is invalid or missing"}
但为什么不起作用return
?
guzzle - Guzzle 未正确发送 PSR-7 POST 正文
它要么没有被发送,要么没有被正确接收。curl
从命令行直接使用(使用 -d 选项)或从 PHP(使用 CURLOPT_POSTFIELDS)确实有效。
我从 PSR-7 请求开始:
我添加了身份验证标头,它正确地针对 API 进行身份验证:
然后我添加请求正文:
我可以将消息发送到 API:
我得到的响应表明 API 根本没有看到“args”参数。我尝试将身份验证令牌移动到 args:
这应该可以工作,并且可以在命令行 ( -d access_token=123456789
) 中使用 curl,但是在发送 cia curl (6.x) 时,API 也无法看到该参数。
我可以看到消息确实包含正文:
那么这里可能出了什么问题呢?是参数没有被发送,还是以错误的格式发送(可能'='被编码?),或者可能使用了错误的内容类型?使用 Guzzle 时很难看到“在线”发送的内容,因为 HTTP 消息经过格式化并发送了很多层。
编辑:调用本地测试脚本而不是远程 API,我得到这个原始消息详细信息:
所以看起来身体是被发送,所以我想还缺少其他东西来告诉远程 API 如何解释那个身体。
编辑:确实有效的命令行 curl 发送到相同的测试脚本,在请求中为我提供了两个额外的标头字段:
我猜这是 Guzzle 请求中缺少的内容类型标头,这是问题的根源。那么这是一个 Guzzle 错误吗?它不应该总是根据文档中列出的假设发送 Content-Type吗?
php - Sf2 重定向响应不起作用
我在我的项目中使用了HttpFoundation 组件,而没有使用完整的 Symfony2 框架。如果某些凭据为真并重定向用户(如文档中所述),我尝试进行RedirectResponse,但该语句不起作用。return
我有:
当我执行这个时没有任何反应。但如果我这样做,我会成功重定向到 Google:
为什么这适用于echo
但不适用return
?我不想echo
在我的类库中使用。
有什么解决办法吗?
php - 将请求从 CURL 转换为 PHP 的 Guzzle 以访问 WHMCS API
我正在尝试学习最新版本的 Guzzle (6.2) 并将我的 cURL 请求转换为 WHMCS API。
使用来自: http ://docs.whmcs.com/API:JSON_Sample_Code的示例代码
我还没有弄清楚如何让同样的东西与 Guzzle 一起工作。
这是我尝试过的:
对于以前使用过 Guzzle 的人来说,这很可能是一个非常明显的答案。
我在哪里错了?
php - 苗条的框架 PSR 无法识别自定义标头
以下是我正在使用的代码。
我在谷歌浏览器中使用邮递员来测试这个 REST 服务。我将自定义标头“授权”与 GET 请求一起传递。但是,该程序无法识别任何自定义标头。
代码块
仅返回标头“HTTP_ACCEPT_LANGUAGE”。
请帮我弄清楚,这里出了什么问题。
php - PSR7 请求:在 Slim3 中获取类似 $_REQUEST 的请求数据
我正在使用 Slim3 作为路由器的 PSR-7 请求重构我的应用程序。在我的一些入口点上,我收到了来自外部应用程序的 GET 和 POST HTTP 请求。GET 和 POST 都使用相同的参数名称。在旧代码中,一个简单的$_REQUEST
的解决了这个问题,但我不想再使用超全局变量了。
为了获取 GET-Request 的参数,我使用以下代码:
对于 POST 请求,我使用:
是否有解决问题的 PSR-7 功能,还是我array_merge()
每次都必须使用?
php - Zend\Http\Client 作为 Zend Expressive 的 PSR-7 中间件
我们应该如何添加Zend\Http\Client
(或其他模块)作为 PSR-7 中间件?
首先我认为是:
案例行动
- 添加工厂
- 注入
Zend\Http\Client
实例 Zend\Http\Client
在 Action 中使用实例,例如$client->request('GET');
但我不确定这是否正确。它应该实现MiddlewareInterface
并提供一种__invoke
方法吗?
编辑:感谢@xtreamwayz 和@timdev https://stackoverflow.com/a/37928824/3411766 https://stackoverflow.com/a/37934597/3411766
所以我会按原样使用客户端。正如@timdex 通过工厂提到的那样,通过容器-> 获取它。谢谢两个=)