- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想向 API 发送 POST 请求。这是我的代码:
conn = Faraday.new(url: BASE) do |faraday|
faraday.response :logger
faraday.request :url_encoded
faraday.headers['Content-Type'] = 'application/json'
faraday.headers["Authorization"] = "bearer #{AppConfig.instance.access_token}"
faraday.adapter Faraday.default_adapter
end
form_data = {a: 1, b: 2}
conn.post("/api/test", form_data)
但是我得到这个错误:
NoMethodError (undefined method `bytesize' for {:a=>1, :b=>2}:Hash)
我也试过:
conn.post("/api/test", form_data.to_json)
但它也不起作用。
最佳答案
官方faraday repo 提供下一个描述:
# post payload as JSON instead of "www-form-urlencoded" encoding:
conn.post do |req|
req.url '/nigiri'
req.headers['Content-Type'] = 'application/json'
req.body = '{ "name": "Unagi" }'
end
因此,内容类型“application/json”无法解析哈希。 Gem 不会自行将正文数据转换为所需的格式。
您需要将 form_data 转换为 string(json
) 格式:
form_data = {a: 1, b: 2}.to_json
注意。使用符号键格式时,不要按.to_s
转换,否则会导致解析错误。
通过你提供的法拉第配置,我在将 format_data 转换为 json 后不会导致任何错误。因此,新错误与法拉第 gem 或提供的代码无关。
关于ruby-on-rails - 法拉第 gem 未定义方法 'bytesize' =' for Hash`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523995/
用于 C++ Protocol Buffer 的方法 ByteSize() 的复杂性是什么?换句话说,是我设置参数时计算的大小,并在内部存储在 Protocol Buffer 中,还是在调用 Byte
我想使用 PySerial 通过串行端口发送消息。串行构造函数的参数之一是“bytesize”。我一直在尝试 serial.SEVENBITS 和 serial.EIGHTBITS,但没有发现差异。文
我想将博主标签存储和更新到 GAE 中的数据存储区。当我运行该代码时,出现此错误: javax.servlet.ServletContext log: Application Error /base/
Java 中的 protobuf 是否有等效的 ByteSize()?我试图在序列化之前获取 protobuf 的大小。 类似于: Protobuf.Builder buffer = Protobuf
response = Typhoeus::Request.get("http://localhost:3000/api/api_email/#{@api_id}.json") JSON.par
未禁止时,客户端会显示错误:{"COUNT(*)"=>0}:Hash 的未定义方法“bytesize” 我使用 mysql2 库 post '/mario/login' do credential
我有以下 Ruby 代码,用于沙盒模式下的跟踪网站: require "net/http" require "net/https" require "uri" xml = XML uri = URI
我正在尝试调用我的自定义 api,它使用 paperclip 上传文件,它在本地使用 https://github.com/jwagener/httmultiparty 工作正常,但是当我尝试调用 a
根据 Protocol Buffer api,如果格式错误,ParseFromArray(const void * data, int size) 将失败,在我的例子中,当 size 参数不对。很多回
我目前正在反复用头撞墙,直到通过这个问题。我正在使用 ruby-1.9.3-p194 和 Rails。我正在尝试发出一个 post 请求,我可以使用 Net::HTTP.post_form 完成它
我想向 API 发送 POST 请求。这是我的代码: conn = Faraday.new(url: BASE) do |faraday| faraday.response :logger f
我对 mysql 和某些字符有疑问。如果用户输入 "hello ●",我得到这个错误: Mysql2::Error: Incorrect string value: '\\xE2\\x97\\x8F
我正在尝试将一些代码从 HTTPParty 转换为 Faraday。以前我用的是: HTTParty.post("http://localhost/widgets.json", body: { nam
我是一名优秀的程序员,十分优秀!