Skip navigation.
 
mlRe: Getting progress of HTTP POST as it's being UPLOADED
FROM : Gary Fielke
DATE : Wed Aug 30 14:43:56 2006

Daniel,

Yes, the docs for  CFReadStreamCreateForStreamedHTTPRequest are not 
exactly easy to find!
Cmd-double-leftclick on the function in XCode will open 
CFHTTPStream.h with some notes on it.
Do a search for this function on the networking list and you'll find 
some tips - such as this one:

http://lists.apple.com/archives/Macnetworkprog/2005/Dec/msg00066.html

Before that though, start with the CFNetwork Programming Guide: 
http://developer.apple.com/documentation/Networking/Conceptual/
CFNetwork/index.html
There's plenty of sample code there to get started including creating 
and setting up a request.

Cheers
Gary



> Thanks a lot for your comments, I really appreciate it. 
> Unfortunately, I
> don't have much experience working with the Core Foundation, 
> especially with
> its networking functions. Do you happen to have some sample code 
> that would
> show setting up a basic request, obtaining the stream, and then 
> getting the
> byte count? I can't seem to find the
> CFReadStreamCreateForStreamedHTTPRequest function, and I'm not sure 
> if I can
> make heads or tails of HTTP requests using CF.
>
> If you or anyone could please give me some more hints, it would be 
> a huge
> help. Thanks for your advice thus far.
>
> Daniel
>
>
> On 8/30/06, Gary Fielke <<email_removed>> wrote:

>>
>> Daniel,
>>

>>> I need to get the status of a POST request as it's being uploaded.
>>> I need
>>> this information so that I can display how many bytes have been
>>> uploaded so
>>> far, and how many are left to be written.
>>>

>>
>> This is what I've done....
>>
>> Setup CFHTTPRequest using CFHTTPMessageCreateRequest and associated
>> functions such as CFHTTPMessageSetHeaderFieldValue,
>> CFReadStreamCreateWithFile,
>> CFReadStreamCreateForStreamedHTTPRequest,  etc
>>
>> To get the bytes uploaded, create a timer and call the following
>> periodically during the upload:
>>
>>                CFNumberRef byteCount =
>> (CFNumberRef)CFReadStreamCopyProperty
>> (httpReqStream, kCFStreamPropertyHTTPRequestBytesWrittenCount);
>>
>> this doesn't quite give exactly what we want as it returns the bytes
>> written to the kernel buffer, not the bytes as they are transmitted
>> from the buffer.
>> So your first read of this property will give something like 32k or
>> 64k when the buffer is initially filled, then will increase as the
>> data is transmitted and the buffer refilled.

Related mailsAuthorDate
mlGetting progress of HTTP POST as it's being UPLOADED Daniel Kurtz Aug 29, 22:52
mlRe: Getting progress of HTTP POST as it's being UPLOADED Gary Fielke Aug 30, 06:31
mlRe: Getting progress of HTTP POST as it's being UPLOADED Daniel Kurtz Aug 30, 08:59
mlRe: Getting progress of HTTP POST as it's being UPLOADED Gary Fielke Aug 30, 14:43
mlRe: Getting progress of HTTP POST as it's being UPLOADED Ferdinand Svehla Aug 30, 17:35