Question: I am trying to connect to a webpage using urllib3. The code is provided below.

```
import urllib3
http=urllib3.PoolManager()
fields={'username':'abc','password':'xyz'}
r=http.request('GET',url,fields)

```

If we assume that url is some webpage which needs to be authenticated using username and password, am i using the right code to authenticate ?

I have did this using urllib2 very comfortably but i was not able to do the same thing using urllib3. 

Many Thanks

Answer: 
Assuming you're trying to do [Basic Authentication](http://en.wikipedia.org/wiki/Basic_authentication), then you need to put the username and password encoded in an `Authorization` header. Here's one way to do that using the [urllib3.make\_headers](https://urllib3.readthedocs.io/en/latest/reference/index.html#urllib3.make_headers) helper:

```
import urllib3

http = urllib3.PoolManager()
url = '...'
headers = urllib3.make_headers(basic_auth='abc:xyz')
r = http.request('GET', url, headers=headers)

```
Below is a working example to authenticate to an API using the requests library (ubuntu with python 3.6). Hope it helps!

```
import json
import requests
from requests.auth import HTTPBasicAuth

def __init__(self):
    header = {"Content-Type": "application/json"}
    access_url = "https://your.login.url/context_path"
    data = {
    "key_to_send":"value_to_send"
    }

def get_token(self):
    self.data = json.dumps(self.data)
    encoded_data = json.dumps(self.data).encode('utf-8')
    self.response = requests.post(self.access_url, auth=HTTPBasicAuth(self.username, self.password), headers=self.header, data=self.data)
    # Show me what you found
    print(self.response.text)

```