停止 ruby​​ http 请求修改标头名称

2024-01-12

我正在 ruby​​ 中执行 http 请求:

  http = Net::HTTP.new(uri.host, uri.port)
  req = Net::HTTP::Post.new(uri.path)
  req.body = payload
  req['customeheader'] = 'xxxxxxxxx'
  http.set_debug_output $stdout

我已打开调试,当发布请求时,我可以看到标题被发布为:

  Customheader: xxxxxxxxx

无论如何,有没有办法阻止这个,我发布到的第三方服务器给出了错误,因为标头名称不正确 - 它正在等待customheader:


虽然可以对 Net::HTTPHeader 和 Net:HTTPGenericRequest 进行猴子修补以删除小写字母和大写字母,但我发现了一种不同的方法,它允许选择性区分大小写,而不是强制所有内容。

解决方案:

class CaseSensitiveString < String
    def downcase
        self
    end
    def capitalize
        self
    end
end

然后 CaseSensitiveString.new('keyname') 在区分大小写时创建密钥。使用其他键的字符串/符号来维持现有的行为。这比猴子修补要简单得多,并且可以与 Rest-client 库以及 Net::HTTP 很好地配合。

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

停止 ruby​​ http 请求修改标头名称 的相关文章

  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • 为什么我可以像调用实例方法一样调用类方法?

    我正在查看这个例子 class SQLObject def self columns return columns if columns columns DBConnection execute2 lt lt SQL first SELEC
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • 在 Rails 中呈现路由错误的 404 页面

    我试图在 Rails 中渲染集成的 404 页面作为例外 我尝试了这个 但仍然收到路由错误页面 posts controller rb def destroy if current user username post email post
  • 随机采样数组的唯一子集

    如果我有一个数组 a 1 2 3 如何随机选择数组的子集 以使每个子集的元素都是唯一的 也就是说 对于a可能的子集是 1 2 3 1 2 2 3 1 2 3 我无法生成所有可能的子集 因为 a 的实际大小非常大 因此有很多很多子集 目前 我
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • 覆盖 Sinatra 默认的 NotFound 错误页面

    有没有办法覆盖 sinatra 默认的 NotFound 错误页面 Sinatra 不知道这个小曲 我希望 sinatra 在未找到正确的路由时仅将纯字符串显示为 未找到方法 但是当我从路由内部引发 404 错误时 我希望它显示传入的错误消
  • Ruby 在 Windows 上找不到 sqlite3 驱动程序

    我正在尝试在 Windows 上设置 Ruby on Rails 我正在使用看起来不错的 Flash Rails 发行版 但是 sqlite3 有一个问题 我发现线程告诉我安装版本 1 2 3 安装得很好 我使用的是 ruby 1 9 0
  • 在 ruby​​ 中创建登录会话时理解“current_user”概念

    我正在阅读很棒的 Michael Hartl 教程来构建 ruby 应用程序here http ruby railstutorial org chapters sign in sign out sec 3acurrent user 我试图理
  • 如何在 Ruby 中动态调用访问器方法[重复]

    这个问题在这里已经有答案了 不管这是否是好的做法 我如何在 Ruby 中动态调用访问器方法 这是一个示例类 class Test Class attr accessor a b end 我可以使用 Object send 方法来读取变量 i
  • 为什么包含此模块不会覆盖动态生成的方法?

    我试图通过包含一个模块来覆盖动态生成的方法 在下面的示例中 Ripple 关联添加了rows 方法表 我想调用该方法 但之后还要做一些额外的事情 我创建了一个模块来重写该方法 认为该模块的row 可以打电话super使用现有的方法 clas
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi
  • 正常关闭 sidekiq 进程

    有谁知道如何找到 sidekiq 的 pidfile 来优雅地关闭它 跑步ps ax grep sidekiq然后运行sidekiqctl stop
  • 用于获取下周一(或一周中的任何一天)的日期的 Ruby 代码

    给定一个输入 例如 day Monday 我如何计算下一次的日期day def date of next day end require date def date of next day date Date parse day delta
  • 如何从数组中提取特定元素?

    如果我有一个数组a 1 2 3 4 5 6 7 8 9 10 我想要这个数组的一个子集 第 1 个 第 5 个和第 7 个元素 是否可以通过简单的方式从该数组中提取这些内容 我在想这样的事情 a 0 4 6 1 5 7 但这行不通 还有一种
  • 在 Yosemite 上安装 Ruby 1.9.2 时出错

    我在 Yosemite 上使用 rvm 安装 ruby 1 9 2 时遇到错误 有人可以帮助我吗 我更新了自制程序和rvm 我正在与其他人合作处理这个项目 所以我无法升级 ruby 我在下面放置了我的输出的链接 提前致谢 Kanyons M
  • 正确的 HTTP 重定向状态代码是什么?

    我在我的网站上实现了友好的 URL 我可以通过 URL 以两种方式访问 产品和类别 http www example com home electronics tablets http www example com home electr
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • 动态img(或视频)标签根本不加载资源,HTTP请求处于“待处理”状态

    我尝试使用以下方法在 Web 应用程序上加载资源时遇到一些问题img or videoHTML 标签 我在我的应用程序中使用 Angular 并动态设置src的参数img标签 使用ng src src 指示 没有那么多图像和资源需要加载 在

随机推荐

  • Apache 和 SSL 背后的 Tomcat

    我到处寻找但找不到针对以下情况的明确解决方案 我们有一个 Web 应用程序 Grails Spring Security 在 apache 后面的 tomcat 中运行 Part应用程序的一部分需要在 https 上运行 因此使用 Spri
  • 在jpanel上画线

    我想让它像画一把尺子 带有 90 度角刻度线的线 https stackoverflow com questions 3488419 java draw a ruler line with tick marks at 90 degree a
  • 类的 Python repr

    As the Python 2 文档 repr http docs python org 2 reference datamodel html object repr 状态 如果可能的话 这个 即 repr 应该看起来像一个有效的 Pyth
  • 将数据拆分为 3 列数据框

    我在将数据文件解析为数据帧时遇到问题 当我使用 pandas 读取数据时 我得到一个包含所有信息的一列数据框 Server 7 14 182 917 20 Dec 2018 08 30 21 0500 GET tools performan
  • 在线 Internet Explorer 模拟器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 试图找到类似的问题 重复的问题 失败 我在mac上开发 我爱我的麦克 我使用 Chrome Firefox 和 Safari 进行开发 我
  • ajax请求中变量丢失

    当尝试将变量作为参数传递给嵌套的 ajax 请求回调时 我遇到了奇怪的行为 form on submit function e ajaxSetup header meta name token attr content e preventD
  • chrome.tab.onactivated

    有人可以告诉我如何使用chrome tabs onActivated 如果 url 等于 我想刷新单击 激活的选项卡 www example com http www example com 或者 如果这是错误的方法 请告诉我该使用什么 首
  • 首次通过 URL 方案打开时 iOS 应用程序崩溃

    我的应用程序处理 URL 方案 当它已经运行并从另一个应用程序调用时 它的行为正确并且没有问题 但是 当它完全关闭时 如在非后台模式下 并且另一个应用程序调用它 它会立即崩溃 我已经设置了 等待可执行文件启动 选项 以便我可以调试appli
  • ES6模块是同步加载还是异步加载?

    模块加载器负责加载模块 我所知道的是 模块加载器在浏览器中异步加载模块 而在 Node js 中它是同步加载的 我想确认一下这个信息是否正确 ES6 模块加载器将是异步的 而 Node js 模块加载器则不是 以下是模块加载器的一些关键方面
  • 从 html 访问 $scope?

    由于愚蠢的第三方原因 我需要从html访问 scope 这就是我正在尝试的 Because angular是全局暴露的 你可以使用 var scope angular element scope 例如 如果您的标记中有此内容 div div
  • 我想在页面过期(419)显示时重定向到登录页面

    我在 handler php 中添加了这段代码 if exception instanceof Illuminate Session TokenMismatchException return redirect gt route login
  • 根据背景颜色改变汉堡菜单的颜色

    有一个白色的汉堡菜单 问题是 在我的项目中 由于背景不透明 网站的某些地方不可见 任务是编写一个脚本 该脚本应根据背景颜色将颜色更改为对比色 例如 在下面的代码中 在黑色背景上 菜单应变为白色 最初的计划是为每个块分配不同的ID 当菜单图标
  • 如何将 Apache 日志重定向到 STDOUT 和 Apache 日志文件

    我正在运行一个 docker 容器 想要将 apache 服务器的日志写入 STDOUT 和文件 知道我的 Apache httpd conf 文件需要什么样的配置吗 任何帮助将不胜感激 你可以试试这个 CustomLog usr bin
  • 如何将字符串写入远程服务器(linux)中的文件

    我试图构建一个小代码 在其中创建一些字符串并将该字符串传输到位于远程服务器中的文件 应在运行时创建 就我而言 远程服务器是 Linux 有人可以帮我吗 我正在使用 JSCH 和 ChannelSftp 但无法执行此操作 下面是我的代码 JS
  • Mono:堆部分太多当应用程序占用内存超过 4 GB 时,增加 MAXHINCR 或 MAX_HEAP_SECTS

    我正在具有 8 GB 内存的 bitnami linux 上运行我的单声道应用程序 它是一个复杂的文件合并应用程序 在运行时应该占用大量 RAM 但每次需要超过 4 GB 的 RAM 时 它都会崩溃并显示以下错误消息 Too many he
  • 底层连接在 HttpWebRequest POST 上关闭 在生产服务器上

    我收到 底层连接已关闭 连接意外关闭 尝试在生产服务器上使用 HttpWebRequest 类进行 POST 时出错 但在我的开发计算机上它工作正常 我最初尝试使用 WebClient 类 但我切换到 HttpWebRequest 来尝试研
  • 如何以分布式方式在本地启动drillbit?

    我下载了 Apache Drill v1 8 编辑了conf drill override conf进行以下更改 drill exec cluster id drillbits1 zk connect 10 178 23 140 2181
  • Ravendb - 自动生成自己的密钥

    我当前有一个对象 它有一个名为 Id 的公共属性 当我存储对象时 我希望 Id 成为数据的一部分 而不是像当前那样成为文档 Id 创建文档存储时 我仅设置连接字符串 using var session documentStore OpenS
  • 无法在 Intellij 中运行 Scala 文件

    我在 Intellij IDEA 14 4 社区版中建立了一个加特林项目 我安装了 Scala 插件 并且项目配置似乎是正确的 因为我没有看到内联错误并且编译工作正常 不过 我在一些教程中指出 您也可以通过右键单击当前文件并选择运行或调试来
  • 停止 ruby​​ http 请求修改标头名称

    我正在 ruby 中执行 http 请求 http Net HTTP new uri host uri port req Net HTTP Post new uri path req body payload req customehead