Reputation: 6956
I am using the Savon library which in turn uses HTTPI, but HTTPI considers only HTTP status codes 200..299 as successful. Unfortunately, the SOAP server I am connecting to uses HTTP 302 Found to redirect its clients to other URLs. Is there a way I can configure HTTPI to follow HTTP redirects?
Upvotes: 4
Views: 795
Reputation: 1104
For anyone coming to this as I did from a Google search. Savon 2.11 supports this with a global configuration value on the client:
follow_redirects: true
Upvotes: 2
Reputation: 47
Try using the 'follow_redirect= true' on the request object.
request = HTTPI::Request.new
request.follow_redirect= true
...
Just had this same issue myself.
Upvotes: 2
Reputation: 8517
Reading Wasabi code I found this line, which calls this line, which calls this line, so I think you can resolve with a brutal but effective constant redefinition:
HTTPI::Response::SuccessfulResponseCodes = HTTPI::Response::SuccessfulResponseCodes.to_a << 302
You can safely ignore the constant redefinition warning (you can use Kernel.silence_warnings{ ... }
).
Anyway, I suggest you to open an issue to httpi; I think it should be the expected behaviour
Upvotes: 1