The missing piece of the puzzle is the error message, those 58 bytes in the body of the 401 response. Can I ask you to run your code in a try/catch clause like this:
try:
... do whatever
except HTTPError, e:
print e.content
Let's see what the server says about the request. Then I think salgado might have a clue what's going on, or it might be obvious.
OK, for future reference here's the request that failed.
--- launchpad. net:443 /api.launchpad. net", oauth_nonce= "22198296" ,oauth_ timestamp= "1232653826" , oauth_consumer_ key="arsenal" , oauth_signature _method= "PLAINTEXT" , oauth_version= "1.0", oauth_token="xxx", oauth_signature ="&NV8cRVkJpK6L LRVzJBRwJskqqlq W85T9lmjpBPK6pn xwL6jmcd8Dxsnd5 sHC1tXfw9FFHQCS b9WScNJm" 6492f3906181061 f8ab642edc1" httplib2/ $Rev: 259 $
GET /beta/bugs/204137 HTTP/1.1
Host: api.edge.
Accept-Encoding: identity
Authorization: OAuth realm="https:/
if-none-match: "fccbde03cd81dc
te: deflate, gzip
accept: application/json
user-agent: Python-
reply: 'HTTP/1.1 401 Unauthorized\r\n'
header: Date: Thu, 22 Jan 2009 19:50:27 GMT
header: Server: zope.server.http (HTTP)
header: X-Powered-By: Zope (www.zope.org), Python (www.python.org)
header: X-Lazr-Oopsid: OOPS-1118ED241
header: Content-Type: text/plain
header: Content-Length: 58
---
The missing piece of the puzzle is the error message, those 58 bytes in the body of the 401 response. Can I ask you to run your code in a try/catch clause like this:
try:
... do whatever
except HTTPError, e:
print e.content
Let's see what the server says about the request. Then I think salgado might have a clue what's going on, or it might be obvious.