1

我知道可以将数据流式传输到CFHTTPMessageRef一个请求对象,这可以通过使用方法来实现CFReadStreamCreateForHTTPRequest

是否可以对CFHTTPMessageRef作为响应对象的 a 做同样的事情?

我想要发生的是我用两个参数启动一个线程/操作(或类似的)。参数一是带有读取流的请求,用于读取实际请求。参数二应该是一个响应,最好是一个写流来写你的回复。

显然我可以直接使用 readstream 和 writestream 来做到这一点,但是我必须手动格式化请求和响应。

这可以使用 CFNetwork 类吗?

4

1 回答 1

1

我没有很好地理解你的问题。但我使用 CFNetwork 进行流式传输。在这里接收响应是我收到它的方式:

-(void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{    
    /*
         The NSStreamEvent constant can be one of the following:
         NSStreamEventNone              -- No event has occurred.
         NSStreamEventOpenCompleted     -- The open has completed successfully.
         NSStreamEventHasBytesAvailable -- The stream has bytes to be read.
         NSStreamEventHasSpaceAvailable -- The stream can accept bytes for writing.
         NSStreamEventErrorOccurred     -- An error has occurred on the stream.
         NSStreamEventEndEncountered    -- The end of the stream has been reached. 
     */

    switch (eventCode) 
    {
        case NSStreamEventHasBytesAvailable:
            len = [(NSInputStream *)aStream read:buf maxLength:1024];
            if(len) {    
                //_data type is nsmutabledata
                [_data appendBytes:(const void *)buf length:len];
                int bytesRead;
                bytesRead += len;
            } else {
                NSLog(@"No data.");
            }
            break;
        case NSStreamEventErrorOccurred:

            break;
        case NSStreamEventOpenCompleted:

            break;
        case NSStreamEventEndEncountered:

            break;
        case NSStreamEventNone:

            break;
        case NSStreamEventHasSpaceAvailable:

            break;
        default:
            break;
    }
}
于 2011-12-16T04:36:28.247 回答