无法读取Ruby的大json响应

时间:2016-06-14 06:49:06

标签: ruby-on-rails json rest-client faraday typhoeus

我有两个项目,我称之为服务器和客户端项目。

在服务器端,我使用的是Web服务。我发送了一个请求 这个Web服务,它返回了一个非常长的JSON响应。然后我可以 做一些业务逻辑,然后回复我的回复。

当我从网络浏览器发送请求时,我可以验证服务器端 返回我的预期,一个非常大的JSON对象(大约4000行)。

当我从客户端向服务器端发送请求时,问题就开始了。 我看不出完整的回应。我只能看到前10行和 底部3行。中间部分不见了!

我尝试了三种Ruby宝石,它们是Rest-client,Typhoeus和Faraday。 您可以在下面看到我如何使用它们。

P.S。我没有短回应的问题。但是当涉及到 大/大/长响应它只是削减了中间。

百头巨怪:

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

REST的客户::

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" }

enter image description here

1 个答案:

答案 0 :(得分:2)

使用method: POST代替GET

(因为GET查询限制为限制)