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 1000 lines and 30% are 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.1.0.tar.gz (20.9 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.1.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for urlfetch-2.1.0.tar.gz
Algorithm Hash digest
SHA256 5eace8acba22621f069167bcc0ecc4e5bbda67eb9428ebf9ae4495d969592f43
MD5 128ed5e5a32470923489b376dde5560e
BLAKE2b-256 f58476ba054d151a4d0dae1add0ac14cc59ad9afad12504d4f12d8c667867d93

See more details on using hashes here.

Provenance

The following attestation bundles were made for urlfetch-2.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: urlfetch-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47aecd2082c9880215f8e5b239ed3c83127fdd77a1307f35f284b97a923a3487
MD5 bdd9955abbb55f793112128973bb60e6
BLAKE2b-256 c0ba399a3be5d45a0a292b7759670152ad70fe0d99d0f9598ea7845227a46140

See more details on using hashes here.

Provenance

The following attestation bundles were made for urlfetch-2.1.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

2.2.0

2 files

This release

2.1.0 This release

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