Metadata-Version: 2.1
Name: requests-doh
Version: 0.1.1
Summary: DNS over HTTPS resolver for python requests
Home-page: https://github.com/mansuf/requests-doh
Author: Rahman Yusuf
Author-email: danipart4@gmail.com
License: MIT
Keywords: requests,doh,dns,https,dns-over-https
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: Name Service (DNS)
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# requests-doh

DNS over HTTPS resolver for python requests

## Installation

```shell
# For Linux / Mac OS
python3 -m pip install requests-doh

# For Windows
py -3 -m pip install requests-doh
```

## Usage

Basic usage

```python
import requests
from requests_doh import DNSOverHTTPSAdapter

adapter = DNSOverHTTPSAdapter(provider='cloudflare') # You can choose between 'google' and 'cloudflare'
session = requests.Session()
# For HTTPS
session.mount('https://', adapter)
# For HTTP
session.mount('http://', adapter)

r = session.get('https://google.com')
print(r.text)
```

Set a custom session for DoH resolver

```python
import requests
from requests_doh import set_resolver_session, DNSOverHTTPSAdapter

resolver_session = requests.Session()
# Insert some additional process here
# ...

set_resolver_session(resolver_session)

adapter = DNSOverHTTPSAdapter(provider='google')
session = requests.Session()
# For HTTPS
session.mount('https://', adapter)
# For HTTP
session.mount('http://', adapter)

r = session.get('https://google.com')
print(r.text)
```

Set an expire time (in seconds) for DoH caching

```python
import requests
from requests_doh import purge_dns_cache, DNSOverHTTPSAdapter

# Default value of `cache_expire_time` is 300
adapter = DNSOverHTTPSAdapter(provider='google', cache_expire_time=1500) 
session = requests.Session()
# For HTTPS
session.mount('https://', adapter)
# For HTTP
session.mount('http://', adapter)

r = session.get('https://google.com')
print(r.text)

# You can purge single DNS cache
purge_dns_cache('google.com')
# or all of them
purge_dns_cache()
```
