Re: Getting progress of HTTP POST as it's being UPLOADED
Re: Getting progress of HTTP POST as it's being UPLOADED
- Subject: Re: Getting progress of HTTP POST as it's being UPLOADED
- From: Gary Fielke <email@hidden>
- Date: Wed, 30 Aug 2006 22:13:56 +0930
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@hidden> 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.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden