如何关闭 HTTParty 帖子正文中的 URI 编码?

Posted

技术标签:

【中文标题】如何关闭 HTTParty 帖子正文中的 URI 编码?【英文标题】:How do I turn off URI Encoding in HTTParty Post Body? 【发布时间】:2012-10-30 15:11:48 【问题描述】:

我正在尝试向 Paypal 发送帖子,但他们不希望对任何内容进行 URI 编码。但是 HTTParty 似乎默认情况下会这样做,这对我来说很糟糕。举个简单的例子,当我尝试这段代码时:

HTTParty.post("http://google.com/", body: foo: "http://example.com/bar")

我看到帖子正文实际上是

foo=http%3A%2F%2Fexample.com%2Fbar

是否可以让HTTParty不进行URI编码?

【问题讨论】:

【参考方案1】:

这是可能的。使用不进行任何 URI 编码的 proc 运行类方法 query_string_normalizer。这对我有用。

query_string_normalizer proc  |query|
    query.map do |key, value|
        "#key=#value"
    end.join('&')

【讨论】:

这对我有用,但似乎空格字符仍然被编码(例如 %20)。特殊字符,如电子邮件地址中的 @ 不是 - 这正是我所需要的。

以上是关于如何关闭 HTTParty 帖子正文中的 URI 编码?的主要内容,如果未能解决你的问题,请参考以下文章

WordPress-为页面/帖子的正文指定一个类或id

数据 URI 正文中未转义的“#”字符已弃用;如何在项目中找到?

HTTParty 和通过令牌授权

如何以角度4在帖子正文中发送数据

NestJS - 如何使用 @Body() 装饰器访问帖子正文?

Afnetworking 3.0 迁移:如何使用 xml 帖子正文发布