Skip to main content

urlfetch is a simple, lightweight and easy to use HTTP client for Python. It is distributed as a single file module and has no depencencies other than the Python Standard Library.

Highlights

  • Distributed as a single file module, has no depencencies other than the Python Standard Library.

  • Pure Python, works fine with gevent.

  • Small codebase, about 1300 lines, much of it comments and blank lines. Only 10 minutes you can know every detail.

  • Random user-agent.

  • Support streaming.

Installation

$ pip install urlfetch

Hello, world

import urlfetch

response = urlfetch.get('http://python.org/')
print(response.status, response.reason)
print(len(response.content))

Uploading files

import urlfetch

response = urlfetch.post(
    'http://127.0.0.1:8888/upload',
    headers = {
        'Referer': 'http://127.0.0.1/',
    },
    files = {
        'fieldname1': open('/path/to/file', 'rb'),
        #'fieldname2': 'file content', # file must have a filename
        'fieldname3': ('filename', open('/path/to/file2', 'rb')),
        'fieldname4': ('filename', 'file content'),
    },
    data = {
        'foo': 'bar'
    },
)

print(response.status, response.content)

Testing

To run the tests, urlfetch relies on bottle and gunicorn. Install them and run:

$ python tests/testall.py

Releasing

Pushing a version tag publishes the package to PyPI with Trusted Publishing and creates a GitHub Release. The tag must match urlfetch.__version__ (for example v2.0.1).

git tag vX.Y.Z
git push origin vX.Y.Z

Release notes come from the matching section in doc/changelog.rst, followed by GitHub’s auto-generated notes. sdist and wheel are attached to the release.

One-time PyPI setup (project owner)

On https://pypi.org/manage/project/urlfetch/settings/publishing/ add a GitHub Trusted Publisher:

  • Owner: ifduyue

  • Repository: urlfetch

  • Workflow: publish.yml

  • Environment: pypi

The GitHub environment pypi is restricted to tags matching v*. No PyPI API token is stored in the repository.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urlfetch-2.2.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

urlfetch-2.2.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file urlfetch-2.2.0.tar.gz.

File metadata

  • Download URL: urlfetch-2.2.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for urlfetch-2.2.0.tar.gz
Algorithm Hash digest
SHA256 39ffb3b83e465dbc622d1aa36ab545550796c8ab840e43a96e181f6f8061d92c
MD5 c70908906650bf764c0153df21e557f4
BLAKE2b-256 033bce2e3f1670d0cad4ac5823279cda8c7b7a0a230e3a1449f1e3f7271e1018

See more details on using hashes here.

Provenance

The following attestation bundles were made for urlfetch-2.2.0.tar.gz:

Publisher: publish.yml on ifduyue/urlfetch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file urlfetch-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: urlfetch-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for urlfetch-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 976b9c3df4f86397d2457d029fa498a2432a270ac1fcb94a77d8d76915595d3f
MD5 cd26f48e9adf18df0a51d6cce4409ec8
BLAKE2b-256 8dd7091e760921d62152aa612e41b6ee36a7bd81df0dfc44317d7f77c73d41a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for urlfetch-2.2.0-py3-none-any.whl:

Publisher: publish.yml on ifduyue/urlfetch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.0.0

2 files

2.4.1

2 files

2.4.0

2 files

2.3.0

2 files

2.2.1

2 files

This release

2.2.0 This release

2 files

2.1.0

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

1 file

2.0.0

1 file

1.2.2

1 file

1.2.1

1 file

1.2.0

1 file

1.1.3

1 file

1.1.2

1 file

1.1.1

1 file

1.1.0

1 file

1.0.3

1 file

1.0.2

3 files

1.0.1

1.0

3 files

0.6.2

3 files

0.6.1

3 files

0.6

3 files

0.5.7

3 files

0.5.6

1 file

0.5.5

1 file

0.5.4.2

1 file

0.5.4.1

1 file

0.5.4

1 file

0.5.3.1

1 file

0.5.3

1 file

0.5.2

1 file

0.5.1

3 files

0.5.0

3 files

0.4.3

3 files

0.4.2

3 files

0.4.1

3 files

0.4.0

3 files

0.3.7

3 files

0.3.6

3 files

0.3.5

3 files

0.3.4

3 files

0.3.3

3 files

0.3.2

3 files

0.3.1

3 files

0.3.0

3 files

0.2.2

3 files

0.2.1

3 files

0.2

3 files

0.1.11

3 files

0.1.7

3 files

0.1.6

3 files

0.1.5

3 files

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page