Home > Net >  Python Requests / HTTPX - Authenticate All Redirected URL - How To
Python Requests / HTTPX - Authenticate All Redirected URL - How To

Time:08-09

I wonder if there is a way to authenticate each redirected URL when working with Python modules such as httpx or requests?

Problem Statement

I am trying to connect to an API endpoint under the company network. Due to the company's cyber security measures, the API endpoint will be randomly masked with a company proxy, which causes the 307 Redirect status code.

my current code snippet looks like the below:

import httpx

api_url = 'https://demo.vizionapi.com/carriers'

head = {
  'X-API-Key':'API KEY'
}

response = httpx.get(url=api_url, verify='supporting_files/cacert.pem',
          headers=head, auth=('my username', 'my password'),
          follow_redirects=True)

With above code, I received the 401 authentication needed error (But auth has been passed). This error will only happen when redirection occurs due to the company proxy.

Question:

My assumption is the authentication is only being passed into the first URL not the redirected URL. Therefore, I wonder if anyone know how I can use the same auth parameter for all URLs (direct & redirect)?

Any suggestion will be deeply appracaited.

CodePudding user response:

I don't know what requests behavior with regards to auth during redirect is, but the first solution to come to mind is to manually follow the redirects yourself. Put your request in a loop that checks for the 3xx response codes, and handle auth however you want to.

  • Related