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)
しかし、それも機能しません。
回答 1 件
関連記事
- アクションインデックスのnil:NilClassの未定義メソッド `round '
- #の未定義メソッド「permit」を解決するのに助けが必要
- メソッドnextInt(int)は、Randomタイプでは未定義です。
- 未定義のメソッド「images_will_change!」
- NoMethodError(JsonWebToken:Moduleの未定義メソッド「encode」):
- #<user - : activerecord_associations_collectionproxyの未定義メソッド `referrals ':
- ajaxメソッドでjson配列にアクセスすると、undefinedが出力されます。 Ajaxで応答オブジェクトの反復処理にアクセスしようとしています
- nomethoderror:未定義のメソッド「needs_migration?」 activerecord - : migrator:classの場合
- 未定義のメソッドタイプ
公式のファラデーリポジトリは次の説明を提供します。
そのため、コンテンツタイプ「application/json」はハッシュを解決できません。 Gemは、本体データをそれ自体で必要な形式に変換しません。
form_dataをstring(
json
に変換する必要があります ) フォーマット:注意。
.to_s
で変換しない 解析エラーの原因となるため、シンボルキー形式を使用する場合。ファラデー構成を提供することで、format_dataをjsonに変換した後にエラーが発生することはありません。そのため、ファラデーgemや提供されたコードに関連しない新しいエラー。