# requests

***

**1. Download a File**

```python
import requests

url = 'https://example.com/file.txt'
response = requests.get(url)
with open('file.txt', 'wb') as f:
    f.write(response.content)
```

**2. Upload a File**

```python
import requests

url = 'https://example.com/upload'
files = {'file': open('file.txt', 'rb')}
response = requests.post(url, files=files)
```

**3. Post Form Data**

```python
import requests

url = 'https://example.com/form'
data = {'username': 'john', 'password': 'secret'}
response = requests.post(url, data=data)
```

**4. Authenticate with Basic Auth**

```python
import requests

url = 'https://example.com/'
response = requests.get(url, auth=('username', 'password'))
```

**5. Timeout a Request**

```python
import requests

url = 'https://example.com/'
response = requests.get(url, timeout=5)
```

**6. Retry a Request**

```python
import requests

url = 'https://example.com/'
for i in range(3):
    try:
        response = requests.get(url)
    except requests.exceptions.RequestException as e:
        print(e)
        time.sleep(1)
```

**7. Handle Redirects**

```python
import requests

url = 'https://example.com/redirect'
response = requests.get(url, allow_redirects=False)
```

**8. Use a Proxy**

```python
import requests

url = 'https://example.com/'
proxies = {'http': 'http://username:password@proxy.example.com:8080'}
response = requests.get(url, proxies=proxies)
```

**9. Send Custom Headers**

```python
import requests

url = 'https://example.com/'
headers = {'User-Agent': 'My Custom User Agent'}
response = requests.get(url, headers=headers)
```

**10. Use a Session**

```python
import requests

session = requests.Session()
url = 'https://example.com/'
response = session.get(url)
```

**11. Stream a Response**

```python
import requests

url = 'https://example.com/large_file.txt'
response = requests.get(url, stream=True)
for line in response.iter_lines():
    print(line)
```

**12. Get Response Content**

```python
import requests

url = 'https://example.com/'
response = requests.get(url)
content = response.content
```

**13. Get Response Text**

```python
import requests

url = 'https://example.com/'
response = requests.get(url)
text = response.text
```

**14. Get Response JSON**

```python
import requests

url = 'https://example.com/api/v1/endpoint'
response = requests.get(url)
json = response.json()
```

**15. Get Response Headers**

```python
import requests

url = 'https://example.com/'
response = requests.get(url)
headers = response.headers
```

**16. Get Response Cookies**

```python
import requests

url = 'https://example.com/'
response = requests.get(url)
cookies = response.cookies
```

**17. Raise for Status**

```python
import requests

url = 'https://example.com/'
response = requests.get(url)
response.raise_for_status()
```

**18. Prepare a Request**

```python
import requests

url = 'https://example.com/'
request = requests.Request('GET', url)
prepared_request = request.prepare()
```

**19. Send a Raw Request**

```python
import requests

url = 'https://example.com/'
data = '{"key": "value"}'
headers = {'Content-Type': 'application/json'}
response = requests.request('POST', url, data=data, headers=headers)
```

**20. Send a Multipart/Form-Data Request**

```python
import requests

url = 'https://example.com/'
data = {'field1': 'value1', 'field2': 'value2'}
files = {'file': open('file.txt', 'rb')}
response = requests.post(url, data=data, files=files)
```

**21. Get a Request's URL**

```python
import requests

url = 'https://example.com/'
request = requests.Request('GET', url)
print(request.url)
```

**22. Get a Request's Method**

```python
import requests

url = 'https://example.com/'
request = requests.Request('GET', url)
print(request.method)
```

**23. Get a Request's Headers**

```python
import requests

url = 'https://example.com/'
request = requests.Request('GET', url)
print(request.headers)
```

**24. Get a Request's Body**

```python
import requests

url = 'https://example.com/'
request = requests.Request('GET', url)
print(request.body)
```

**25. Get a Request's Cookies**
