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.
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 mails | Author | Date |
|---|---|---|
| Daniel Kurtz | Aug 29, 22:52 | |
| Gary Fielke | Aug 30, 06:31 | |
| Daniel Kurtz | Aug 30, 08:59 | |
| Gary Fielke | Aug 30, 14:43 | |
| Ferdinand Svehla | Aug 30, 17:35 |






Cocoa mail archive

