私は2つのプロジェクトをサーバーとクライアントプロジェクトと呼びます。Rubyからの大きなjson応答を読み取ることができません
サーバー側では、Webサービスを使用しています。私は このWebサービスに特定の要求を送信し、それは私に非常に長いJSON応答を返します。それから、私は ビジネスロジックを行い、私の返答を返すことができます。
ウェブブラウザからリクエストを送信すると、サーバ側である が予想したもの、非常に大きなJSONオブジェクト(約4000行程度)を返すことが確認できます。
問題は、クライアント側からサーバー側に要求を送信すると発生します。 完全な応答が表示されません。私が見ることができるのは、上位10行と下位3行の です。途中でなくなってしまった!
私はRest-client、Typhoeus、Faradayの3つのRuby宝石を試しました。 あなたは私がそれらをどのように使用したかを見ることができます。
P.S.私は短い回答に問題はありません。しかし、それが大きい/大きい/長い応答 になると、それは単に中央を切る。
Typhoeus:
request = Typhoeus::Request.new("http://localhost:3000/api/json", method: :get, followlocation: true,
params: { function: "getAirAvailability", tripType: params[:tripType], departureDateTime: params[:departureDateTime] , destinationLocation: params[:destinationLocation] , originLocation: params[:originLocation] , passenger_adult: params[:adult], passenger_child: params[:child], passenger_infant: params[:infant], passenger_soldier: params[:soldier] },
headers: { Authorization: "Chg25WxSvQsBsxKyVKyV"})
ファラデー:
conn = Faraday.new(:url => 'http://localhost:3000/api/json', headers: { "Authorization" => "Chg25WxSvQsBsxKyVKyV" }) do |faraday|
faraday.response :logger
faraday.adapter Faraday.default_adapter
end
response = conn.get '/api/json', { function: "getAirAvailability", tripType: "ONE_WAY", departureDateTime: "2016-06-17" , destinationLocation: "ESB" , originLocation: "CKZ" , passenger_adult: 1, passenger_child: 0, passenger_infant: 0, passenger_soldier: 0 }
return response
残り、クライアント::
response = RestClient.get "http://localhost:3000/api/json", { params: { function: "getAirAvailability", tripType: "ONE_WAY", departureDateTime: "2016-06-17" , destinationLocation: "ESB" , originLocation: "CKZ" , passenger_adult: 1, passenger_child: 0, passenger_infant: 0, passenger_soldier: 0 } , :Authorization => "Chg25WxSvQsBsxKyVKyV" }
私はあなたが「完全に大きなJSON結果を得る」ことで意味を理解していませんか?あなたは何を期待していますか?代わりに何を得たのですか? –
私は今、私の質問を編集しました。 – esmrkbr