1

メソッドを使用してサーバーにデータを送信していますRho::AsyncHttp.postが、データを json オブジェクトとして送信できません。ただし、データを文字列として送信するとサーバーに到達しますが、サーバー API には json データが必要です。

ここで私が使用しているコード、

data = { :query1 => "this demo" , :query2 => "another demo" }
result = Rho::AsyncHttp.post(
    :url => "https://www.myserverapi.com/myapi",
    :body => data
)

上記のコードはサーバーへの接続に失敗します。ただし、を変更する:body => #{data}と、サーバーに到達しますが、文字列として到達します。アリの提案?

4

1 に答える 1

1

まず、 を設定する:body => #{data}と、json データが文字列に変換されます。#{}

:header次に、 を に設定する必要があります{ "Content-Type" => "application/json; charset=utf-8", "Accept" => "application/json" }。これにより、post メソッドがデータを json オブジェクトとして受け入れるようになります。

したがって、以下のコードが必要です。

data = { :query1 => "this demo" , :query2 => "another demo" } # Any data to be passed
result = Rho::AsyncHttp.post(
    :url => "https://www.myserverapi.com/myapi",
    :header => { "Content-Type" => "application/json; charset=utf-8", "Accept" => "application/json" },
    :body => Rho::JSON.parse(data)
)

これがお役に立てば幸いです。

于 2013-09-13T03:46:49.107 に答える