Reputation: 750
I have written an integration with a SOAP API using savon. I am running into issue which seems to be only with certain OSs. The reason I say that is because the same code works on CentOS6 and MacOSX but it refuses to work with Ubuntu12.04. The code I'm using is:
@client = Savon.client do
wsdl "mywsdl"
basic_auth ["username", "password"]
end
@client.call(:set_session_parameters, message: {viewSettings: {rollingPeriod: "Today", shiftStart: "25200000", statisticsRange: "CurrentDay",timeZone: -21600000}})
The error I get back is:
[2013-06-03T18:22:31.784007 #16304] DEBUG -- : HTTPI POST request to api.five9.com (httpclient)
I, [2013-06-03T18:22:42.413083 #16304] INFO -- : SOAP response (status 401)
D, [2013-06-03T18:22:42.413378 #16304] DEBUG -- : <html><head><title>JBoss Web/2.1.3.GA - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 401 - No user credentials found</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>No user credentials found</u></p><p><b>description</b> <u>This request requires HTTP authentication (No user credentials found).</u></p><HR size="1" noshade="noshade"><h3>JBoss Web/2.1.3.GA</h3></body></html>
Savon::HTTPError: HTTP error (401): <html><head><title>JBoss Web/2.1.3.GA - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 401 - No user credentials found</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>No user credentials found</u></p><p><b>description</b> <u>This request requires HTTP authentication (No user credentials found).</u></p><HR size="1" noshade="noshade"><h3>JBoss Web/2.1.3.GA</h3></body></html>
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/savon-2.2.0/lib/savon/response.rb:71:in `raise_soap_and_http_errors!'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/savon-2.2.0/lib/savon/response.rb:13:in `initialize'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/savon-2.2.0/lib/savon/operation.rb:53:in `new'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/savon-2.2.0/lib/savon/operation.rb:53:in `call'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/savon-2.2.0/lib/savon/client.rb:36:in `call'
Like I said on other OSs the code works fine. Is there something that I need to install to make this work on Ubuntu12.04?
Any help with this issue would be appreciated. Thanks!
Upvotes: 1
Views: 1657
Reputation: 750
The issue was with the HTTP client that HTTPI was using. For some reason HTTPCLIENT isn't working for what I need. So I just gem uninstall httpclient
.
After that HTTPI automatically picks up net_http which works like a champ!
Upvotes: 1
Reputation: 160551
HTTP error (401)
means your attempt to authorize failed. Usually it's a problem with the userid/password. Farther into the HTML returned it says:
HTTP Status 401 - No user credentials found
I think you need to make sure your userid and password are correct.
Upvotes: -3