1

I have been regularly accessing an API at work using curl. But now i need to do a bit of automation for the same. Was trying to translate what i do with curl into python using the requests module. But I keep receiving a 401 error.

My curl requests that i regularly are as below:

Step1: Session Authentication with cookies:

curl -b cookies -c cookies -v -X POST -H "Content-Type: application/json" --data-binary '{"auth":{"username":"aaa","password":"bbb"}}' http://api.xyz.at/auth

Step2: Access API URL for data retrieval

curl -b cookies -c cookies http://api.xyz.at/somepage?per_id=556677

Now using Python Requests, here is what I am doing

Step1: For Authentication

username = 'aaa'
password = 'bbb'
s = requests.Session()
s.post('http://api.xyz.at/auth',auth=('username','pasword'))

This "i think" works fine, and give me the below response

<Response [200]>

Step2: Access API URL for data retrieval

s.get('http://api.xyz.at/somepage?per_id=556677')

but this Step 2 keeps returning an error

<Response [401]>

The code is failing and not sure where.

My Python skills are visibly pedestrian. I have been looking at the Requests website. But unfortunately haven't been able to decipher. Guidance would be appreciated :)

2 Answers 2

1
import urllib2, urllib
url = 'http://api.xyz.at/auth'
pm = urllib2.HTTPPasswordMgrWithDefaultRealm()
pm.add_password(None, url, 'user', 'password')
auth = urllib2.HTTPBasicAuthHandler(pm)
opener = urllib2.build_opener(auth)
urllib2.install_opener(opener)
request = urllib2.Request('http://api.xyz.at/somepage?per_id=556677', None)
handler = urllib2.urlopen(request)
handler.read()
Sign up to request clarification or add additional context in comments.

Comments

0

Since you are getting a 401 error I guess you are not passing the authentication token which you get as response from login API. Use the same auth token to perform other options - Get-post-Delete.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.