2

I'm using HTTParty to post information to a server using the following code:

this_component = {"name" => "something", "ip" => "localhost", "logs" => logs_to_push}
payload = {"payload" => JSON.dump(this_component)}
response = JSONClient.post("http://localhost:8080/log", :body => '', :query => payload)

The problem is that I get a Connection reset by peer (Errno::ECONNRESET) message when the POST actually executes, which I'm pretty sure is caused by my payload being too large (as logs_to_push is an array with ~200 log lines in it). How would I refactor the above so that I could push this data successfully?

Chris Bunch
  • 87,773
  • 37
  • 126
  • 127

2 Answers2

3

So it turns out that for large amount of stuff, you should put the payload in :body and not :query. For future people that run into this problem, the correct code (working off the above example) would be:

this_component = {"name" => "something", "ip" => "localhost", "logs" => logs_to_push}
payload = {"body" => {"payload" => JSON.dump(this_component)}}
response = JSONClient.post("http://localhost:8080/log", payload)
Chris Bunch
  • 87,773
  • 37
  • 126
  • 127
  • 1
    This is actually not related to HTTParty but of the server where the request is sent to. What the maximum length is depends on the server software. See some values in this post http://stackoverflow.com/questions/812925/what-is-the-maximum-possible-length-of-a-query-string – Pascal Oct 05 '12 at 12:41
1

Try This for Post Req

require 'httparty'
require 'json'

load = {:name => "xyz",:logs => "xyz"}
payload = load.to_json
url="http://xyz.com/abc"
response = HttParty.post(url,{:body => payload})

Thanks