Guzzle HTTP 请求从 POST 转换为 GET

2024-01-31

当我尝试向外部 API 发布帖子时,发生了一件非常奇怪的事情,我尝试向 URL 发出 POST 请求,但 Guzzle 发出 GET 请求(这是对此 API 的合法操作,但返回不同的内容)。

这是代码:

$request = $this->client->createRequest('POST', 'sessions', [
  'json' => [
    'agent_id' => $agentId,
    'url' => $url
  ],
  'query' => [
    'api_key' => $this->apiKey
  ]
]);

echo $request->getMethod(); // comes out as POST
$response = $this->client->send($request);
echo $request->getMethod(); // suddenly becomes GET

当我使用时也会发生同样的事情$this-client->post(…)

我真的不知道下一步该做什么。


我遇到了同样的问题。 原因是当存在代码 301 或 302 的位置重定向时,Guzzle 将请求方法更改为“GET”。 我在中找到了“问题代码”重定向中间件.php https://github.com/guzzle/guzzle/blob/a88a06be44e3763213a3ecda2fab9bfbcb8cb356/src/RedirectMiddleware.php#L167.

但是当您看到 if 条件时,您可以通过添加来禁用此行为'allow_redirects'=>['strict'=>true]您的选择。 找到这个选项后,我发现该选项列在Guzzle 选项文档 http://docs.guzzlephp.org/en/stable/request-options.html#allow-redirects

所以你需要像这样重写你的createRequest:

$request = $this->client->createRequest('POST', 'sessions', [
  'json' => [
    'agent_id' => $agentId,
    'url' => $url
  ],
  'query' => [
    'api_key' => $this->apiKey
  ],
  'allow_redirects'=> ['strict'=>true]
]); 

它应该保留方法POST重定向后。

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

Guzzle HTTP 请求从 POST 转换为 GET 的相关文章

  • 每页都包含菜单

    假设我有一个简单的 CSS 布局 我的菜单是侧面的一列 此菜单将出现在每个网页上 大约 10 个网页 如果我在这个菜单上有链接等形式的项目 我怎样才能做到这样 如果我在一页上添加链接 它会将其添加到所有页面 你能把它做成一个 PHP 页面吗
  • 使用 PHPUnit 和 Mockery 进行 Laravel 测试 - 设置控制器测试的依赖关系

    在终于通过了我愚蠢的简单测试后 我有一种感觉 我做得不对 我有一个 SessionsController 负责显示登录页面并让用户登录 我决定不使用外观 这样我就不必扩展 Laravel 的 TestCase 并在单元测试中承受性能影响 因
  • 如何组织和管理ACL?

    采取Zend ACL http framework zend com manual en zend acl html作为我的例子 我想知道应该如何为项目组织它 当然 这个例子非常漂亮和简洁 但真实的网站要复杂得多 acl new Zend
  • 如何将 gettext 字典中的术语输入 JavaScript?

    我正在尝试使用 php 和 javascript jquery 开发一个支持多种语言的网站 我正在尝试获得以下东西 高效 我需要尽可能减少这个操作的后端处理 可扩展 向翻译添加新字符串必须简单实用 问题是 我的 javascript 代码正
  • 如何更新 PHP 中 xpath 的版本? [复制]

    这个问题在这里已经有答案了 可能的重复 XPath 2 0 和 或 XSLT 2 0 是否会在 PHP 中实现 https stackoverflow com questions 2085632 will xpath 2 0 and or
  • Magento 从 Observer 重定向始终有效

    我无法从观察者在 Magento 中创建工作重定向 据我所知 有很多事件都获得了响应对象 在 observer目的 另一种方法是使用类似的东西 Mage app gt getResponse gt setRedirect Mage getU
  • 将文件从 Dropbox 下载到服务器

    我想从 Dropbox 下载文件 并需要代表 Dropbox 用户将其保留在我的服务器中 我尝试使用curl 和file get contents 但未能成功 我需要使用 dropbox 的任何 api 方法吗 我可以从浏览器下载该文件 但
  • 无法连接到 SMTP 服务器

    我有一个支持邮件的服务器 比如说example com 我配置了服务器并通过cpanel添加了MX记录 这样我就可以通过outlook com有地址 email protected cdn cgi l email protection MX
  • dayname(curdate()) 不适用于 codeigniter php

    此 sql 在 phpmyadmin 中有效 但在 codeigniter php 中无效 function getProgramsHomepage data array this gt db gt select p name p star
  • 用教义 2 DBAL 连接子查询

    我正在重构 Zend 框架2应用程序使用学说 2 5 DBAL 而不是 Zend DB ZF1 我有以下 Zend Db 查询 subSelect db gt select gt from user survey status entrie
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • WSDL PHP 函数返回 null,而其他函数返回预期结果

    Summary 在这里 我将列出我解决此问题所采取的所有步骤 以供其他人参考 1 PHP 很愚蠢地 监听 函数的输入消息来定义它应该使用哪个函数 因此 为每个函数提供不同的输入消息 即使它使用相同的类型或元素 您可能认为这对您来说是一项艰巨
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 如何在 PHP 中反序列化 Perl Data::Dumper 输出

    我在 Perl 中有一个导出变量的结果 如下字符串 VAR1 guard gt undef work hand gt undef images gt 1 gt mini height gt 150 width gt 150 extensio
  • 使用 MySQL 的 CURDATE() 或 PHP 的 date() 更快?

    使用mysql查询是不是更快 SELECT CURDATE as today 或 PHP 语句 curdate date Y m d 同样的答案是否适用于使用date VS MySQL 的NOW and CURTIME 如果您只是执行查询以
  • PHP Web 应用程序 (Magento) 遭到黑客攻击;这段黑客代码有什么作用?

    我刚刚安装的 Magento 1 3 2 4 被黑了 你能告诉我这段代码的目的是什么吗 另外 如何阻止这种情况以及如何发现漏洞 谢谢 function net match network ip ip arr explode network
  • ZF2 将自定义属性添加到选择表单元素中的选项

    我想将自定义 HTML 属性添加到 Zend Framework 2 表单中的选择选项中 这是我的 Form 类中的 部分 代码 this gt add array name gt lieuRemplissage type gt Selec
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • 将日期时间舍入到最后一小时

    我试图寻找这个 但我找不到我想做的事情的好例子 我在 MySQL 数据库中得到了日期时间值 当使用该值时必须向下舍入 例如 所有这些值 2013 04 20 07 14 422013 04 20 07 19 512013 04 20 07
  • 将 #RRGGBB 十六进制值转换为 #AARRGGBB

    414141 与 AARRGGBB 的值是什么 52b531 又如何 我如何使用 PHP 转换它 Regards 奔腾10 AA 是 Alpha 通道 直接转换是将 AA 设置为 FF 以使其完全不透明 414141 becomes FF4

随机推荐

  • 兼容类型与严格别名规则

    将一种类型转换为另一种类型是 C 中的常见策略 这依赖于 C 结构体的布局具有一定的保证这一事实 GLib等库依靠它来实现类似继承的面向对象 基本上 struct Base int x int y struct Derived struct
  • 在 WordPress 中使用 jQuery UI 对话框

    我知道至少还有另外一篇文章处理这个问题 但答案从未明确给出 我正在 head php 文档中的 WP 子主题中工作 我在头部添加了这个
  • mgm 包中的estimateNetwork 函数存在问题

    我正在尝试使用 mgm 包运行混合图形模型 到目前为止 这是我的代码 我在最后一个命令周围加了星号 这是我似乎无法运行的命令 有人可以建议吗 library haven gt flordiss lt read sav C Users sch
  • 将不应提交的 Gradle 配置(即凭据)放在哪里?

    我正在尝试将 Gradle 构建的工件部署到 Maven 存储库 并且我需要为此指定凭据 目前这工作正常 uploadArchives repositories mavenDeployer repository url http nexus
  • 如何中断 R 中的 RPostgresql 查询

    在 RPostgresql 中中断长时间运行的查询的最佳方法是什么 例如 我想查看表格的前 10 行 并打算输入 dbGetQuery con select from big table limit 10 但有时我会忽略 限制 10 然后我
  • Rails、Ruby 1.9.3p0 和 mysql gem

    我正在运行 CentOS6 并从源代码安装了 Ruby 以及 Rails 和其他一些人员 ruby v ruby 1 9 3p0 2011 10 30 revision 33570 x86 64 linux rails v Rails 3
  • 什么时候应该使用封装? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在完成 Sun Oracle 的踪迹 http docs oracle com javase tutorial java TOC html
  • 哈希映射内存开销

    我正在研究哈希图的内部结构 其中我遇到了以下详细信息 实现是一个 HashMap Entry 对象数组 每个 HashMap Entry 包含 int KeyHash 下一个对象 对象键 对象值 默认容量为 16 个条目 空大小为 128
  • 如何检测用户是否离开了我的应用程序?

    我正在开发一个 Android 应用程序 我想检测用户何时通过单击 后退 按钮或 主页 按钮退出我的应用程序 另外 像这样的事件onInit 在我的场景中很有用 因为我只想拥有MyIn t行动首先开始 onDestroy 直到其他应用程序需
  • 选择正确的 IOS XML 解析器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 iPhone 有上百万种不同的 XML 解析器 我有一个中等大小的 XML 文件 其中包含大量重复标签
  • Web API 可空必需属性需要 DataMember 属性

    我在 Web API Post 操作上收到以下虚拟机 public class ViewModel public string Name get set Required public int Street get set 当我发帖时 出现
  • 在 Rails 3 中执行任务时显示加载屏幕

    如果我的 创建 操作需要一段时间才能加载 由于执行 API 调用然后进行计算 向用户显示 加载屏幕 的最佳方式是什么而这个任务是在后台执行的 编写一些 AJAX 魔法 在激活时显示加载图像 并在 AJAX 调用完成时隐藏它 如果你不想使用
  • axios有能力检测重定向吗?

    The Fetch API响应接口 https developer mozilla org en US docs Web API Response has a 只读标志 https developer mozilla org en US d
  • 同时录制和播放音频

    任何人都可以帮助我在 iPhone 上同时录制和播放音频 您可以使用 AVFoundation 框架 它有AVAudioPlayer来播放音频文件和AVAudioRecorder来录制 您必须记住 录音机只能使用麦克风进行录音 因此 同时播
  • Python中正态分布的曲线拟合

    我想计算正态分布数据的百分位数 所以我首先将数据拟合到正态分布 下面是示例 from scipy stats import norm import numpy as np from scipy optimize import curve f
  • Django:无法从另一个应用程序导入模型

    我希望就我遇到的这个问题寻求一些帮助 我仍在学习 Django 和 Python 并遇到了这个我无法找到答案的特定问题 我创建了一个名为 新闻 的新应用程序 并为该应用程序设置了模型 使用管理界面我创建了一些数据 从我的 Pages 应用程
  • Go viper .yaml 值环境变量覆盖

    我正在努力拥有application yamlgo 应用程序中的文件包含 RMQ HOST 我想用环境变量覆盖的值 In application yaml我有 rmq test host RMQ HOST port RMQ PORT 在我的
  • 更改用户登录名后认证错误

    我们有一位最近更改了姓名的用户 假设旧用户名是 old name 新用户名是 new name 在 AD 中编辑详细信息并使用新用户名注销 登录后 我们的 ASP NET 应用程序显示旧名称 纯 ASP NET 无 MVC 使用 Windo
  • 如何在 obj-C 的 C 函数中向自己发送消息?

    我有一个 C 函数 音频队列服务中的回调函数 我想向自己发送消息 怎么做 如果我输入 self message 则会出现错误 Use of undeclared identifier self 您不会在实时回调中执行 objc 消息 例如音
  • Guzzle HTTP 请求从 POST 转换为 GET

    当我尝试向外部 API 发布帖子时 发生了一件非常奇怪的事情 我尝试向 URL 发出 POST 请求 但 Guzzle 发出 GET 请求 这是对此 API 的合法操作 但返回不同的内容 这是代码 request this gt clien