2016-06-14 3 views
2

J'ai deux projets que je les appelle les projets serveur et client. Du côté serveur, j'utilise un service Web. J'envoie une certaine demande à ce service Web, et il me renvoie une très longue réponse JSON. Ensuite, je peux faire une logique métier et renvoyer ma réponse. Lorsque j'envoie une requête depuis un navigateur Web, je peux vérifier que le côté serveur renvoie ce que j'attendais, un très grand objet JSON (environ 4000 lignes environ).Je ne peux pas lire la réponse grand json de Ruby

Le problème commence lorsque j'expédie une demande du côté client vers le côté serveur. Je ne peux pas voir la réponse complète. Tout ce que je peux voir, c'est le top 10 des lignes, et les lignes du bas 3. La partie du milieu est partie!

J'ai essayé trois gemmes Ruby, qui sont Rest-client, Typhoeus et Faraday. Vous pouvez voir comment je les ai utilisés ci-dessous.

P.S. Je n'ai pas de problèmes avec des réponses courtes. Mais quand il s'agit de grandes/grandes/longues réponses, il coupe simplement le milieu.

Typhée:

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

Faraday:

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-client ::

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

Je ne comprends pas ce que vous entendez par « obtenir complètement un gros résultat JSON »? qu'attendez-vous? Qu'avez-vous eu à la place? –

+0

J'ai édité ma question, maintenant. – esmrkbr

Répondre

2

Utilisation method: POST au lieu de 0.123.

(car une requête GET est limitée avec une limite)