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 dependencies other than the Python Standard Library.

Highlights

  • Distributed as a single file module, has no dependencies 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.3.0.tar.gz (22.2 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.3.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for urlfetch-2.3.0.tar.gz
Algorithm Hash digest
SHA256 20d7e07e0101b43aec6854c4121cf473a27f719c65af1ab91af5d440b3bf4013
MD5 a8ce0fc6116b028215b8b592d2385290
BLAKE2b-256 493a7f9e083856a59cbcb5ec635d426129c4c7d9dc799b0d47ae30cf54b794fe

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: urlfetch-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.3 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a29a4d1a1213ed49ccfae1b518405a94ba8127f6b0e1e2f4a9ba616c5e5d5b7
MD5 64da693d3da530feda891e98f634881a
BLAKE2b-256 42deb233bac887016c953c30462002c8abcd884f81589b54c35aa02af5c151f3

See more details on using hashes here.

Provenance

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

This release

2.3.0 This release

2 files

2.2.1

2 files

2.2.0

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