【发布时间】:2012-05-10 15:26:04
【问题描述】:
我正在尝试以流模式在 http 下上传线性文件。 这个想法是同时执行这些步骤, 1)线程1:录制音频文件并将其存储在临时文件中 2) 线程 2:从临时文件中取出 n 个字节并将其发送到 http 服务器。
我怎样才能写一个 http 流?,在 CFHTTPStream 上我没有看到写方法,只有读:s 我需要使用套接字吗? 谢谢!!!
我的实际代码是
CFWriteStreamRef stream;
NSString *strUrl = @"myurl";
NSURL *url = [[[NSURL alloc] initWithString:strUrl] retain];
CFStringRef requestMethod = CFSTR("GET");
CFHTTPMessageRef message= CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, (CFURLRef)url, kCFHTTPVersion1_1);
CFHTTPMessageSetHeaderFieldValue(message, CFSTR("Content-Type"),
CFSTR("multipart/form-data"));
stream = ?? //CFReadStreamCreateForHTTPRequest(NULL, message);
CFRelease(message);
//other headers...
if (CFWriteStreamSetProperty(stream, kCFStreamPropertyHTTPShouldAutoredirect, kCFBooleanTrue) == false)
{
NSLog(@"Error");
return NO;
}
//
// Open the stream
//
if (!CFWriteStreamOpen(stream))
{
CFRelease(stream);
NSLog(@"Error");
return NO;
}
CFStreamClientContext context = {0, self, NULL, NULL, NULL};
CFWriteStreamSetClient(stram, kCFStreamEventHasBytesAvailable | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered,
RSWriteStreamCallBack,
&context);
CFWriteStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
【问题讨论】:
标签: objective-c ios sockets audio-streaming cfstream