在HTTParty中使用查询字符串中的加号

时间:2015-09-29 06:07:16

标签: httparty

我正试图通过HTTparty获取此网址:

http://collections.museumvictoria.com.au/api/search?hasimages=yes&collectingarea=royal+exhibition+building&page=1

我正在使用查询:

items = get("http://collections.museumvictoria.com.au/api/search", query: {has images: "yes", collecting area: "royal+exhibition+building", page: 1})

这会返回0结果但是如果我只是将url复制并传递到浏览器中,它会返回数据。从我的其他测试来看,似乎只收集带有加号的区域无法返回结果collectingarea: "arms"。)

知道我们应该如何正确编码加号以使其在HTTParty中运行?

1 个答案:

答案 0 :(得分:0)

使用HTTParty版本> = v0.13.4它在内部对查询值进行编码。 但是,您可以覆盖httparty的查询字符串规范化程序。 此外,您还需要在查询键中的单词之间添加下划线,如has_images,collecting_area。

我测试了这段代码,它对我有用:

require 'httparty'

class Test
    include HTTParty
    def self.test
        puts self.get("http://collections.museumvictoria.com.au/api/search", query: {has_images: "yes", collecting_area: "royal+exhibition+building", page: 1})
    end
end

Test.test