2016-06-14 15 views
2

У меня есть два проекта, которые я называю ими проекты сервера и клиента.Не могу прочитать большой ответ json от Ruby

На стороне сервера я использую веб-службу. Я отправляю определенный запрос на этот веб-сервис, и он возвращает мне очень длинный ответ JSON. Затем я смогу сделать некоторую бизнес-логику и вернуть свой ответ.

Когда я отправляю запрос из веб-браузера, я могу проверить, что серверная сторона возвращает то, что я ожидал, очень большой объект JSON (приблизительно 4000 строк).

Проблема возникает, когда я отправляю запрос с клиентской стороны на сервер. Я не вижу полного ответа. Все, что я вижу, это верхние 10 строк, а нижние 3 строки - . Средняя часть исчезла!

Я пробовал три рубиновых камня, которые являются Rest-client, Typhoeus и Faraday. Вы можете видеть, как я использовал их ниже.

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 

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

+0

Я не понимаю, что вы имеете в виду «получить совершенно большой результат JSon»? что вы ожидаете? что вы получили вместо этого? –

+0

Теперь я изменил свой вопрос. – esmrkbr

ответ

2

Использование method: POST вместо GET

(поскольку GET запрос ограничен с ограничением)