Make WordPress Core

Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#23472 closed enhancement (fixed)

Retrieve the first x bytes of a remote file

Reported by: dd32 Owned by:
Milestone: 3.6 Priority: normal
Severity: normal Version:
Component: HTTP API Keywords: has-patch
Focuses: Cc:


A commonly useful functionality in HTTP clients is to only request the first x bytes of a document, this can be useful for example, when you only need to fetch the first few KB of a image so as to determine it's dimensions from the initial metadata in the file.

At present, we have no way to offer this through WP_HTTP, The attached patch is a first-scratch effort at adding it. No proper unit tests so far, just casual testing which confirms it working.


  • Supports all 3 transports
  • Handles streaming-to-file as well
  • Doesn't include Headers in the byte count
  • Works with Redirects

I'll add some Unit tests for this soon hopefully.

Attachments (1)

23472.diff (8.8 KB) - added by dd32 3 years ago.

Download all attachments as: .zip

Change History (9)

3 years ago

#1 @dd32
3 years ago

  • Milestone changed from Awaiting Review to Future Release

Other things of note

  • Disables Compression support (Well, rather it disables WP_HTTP saying it can support compression, servers may still send compressed data.
  • Doesn't work with HTTP 1.1 + Transfer-encoding: Chunked, HTTP 1.1 support is mostly broken at present anyway #23463

#2 @dd32
3 years ago

  • Milestone changed from Future Release to 3.6

#3 @dd32
3 years ago

Throwing this in for some soak time, I've renamed the parameter from 'first-x-bytes' to 'limit-response-size' - I'm not entirely sure of what naming scheme to use for this though, the name may change if someone can suggest a better option.

#4 @dd32
3 years ago

In 23605:

WP_HTTP: Enable developers to request the first x bytes of a document using the 'limit-response-size' parameter.
The connection to the remote server will be disconnected after x number of bytes has been received.
See #23472

#5 @dd32
3 years ago

In 23609:

WP_HTTP: Prevent the 'max_body_length' and 'stream_handle' properties of the curl class from leaking between requests by specifically initializing them in every case. See #23472 & r23605

#6 @ryan
3 years ago


#7 @dd32
2 years ago

  • Resolution set to fixed
  • Status changed from new to closed

Lets call it fixed.

#8 @nacin
2 years ago

In 24767:

Rename limit-response-size to limit_response_size. see #23472.

Note: See TracTickets for help on using tickets.