2009-06-07 54 views
0

我正在寻找一种将超时添加到CFHTTP请求的方法。似乎应该有CFHTTPMessageCFReadStream对象的功能,但我找不到它。我是否必须在运行循环中放置自己的计时器? (如果是这样,这个任何代码?)CFNetwork HTTP超时?

谢谢!

回答

-1

更新:ASIHTTPRequest已过时,不再维护。我现在要推荐使用内置NSURLConnection的Apple。 NSURLConnection具有非常小的异步API,包含在NSURLRequest中的大部分功能。你可以指定使用NSURLRequest是你的超时requestWithURL:cachePolicy:timeoutInterval:

除非你有使用CFHTTPMessage我建议你使用它给你添加的易用性,包括超时更高级别类如ASIHTTPRequest特殊原因。

+0

罗杰,我没看@ ASIHTTPRequest它看上去很不错,但有一件事我需要做的是它不会 - 这是来自CFReadStream对象的流数据。 (我可以添加一个补丁我想......) – sehugg 2009-06-08 09:37:22

2

试试这个,readStream是你CFReadStreamRef:

#define _kCFStreamPropertyReadTimeout CFSTR("_kCFStreamPropertyReadTimeout") 

double to = 15; // 15s timeout 
CFNumberRef num = CFNumberCreate(kCFAllocatorDefault, kCFNumberDoubleType, &to); 
CFReadStreamSetProperty(readStream, _kCFStreamPropertyReadTimeout, num); 
CFRelease(num); 

恒为写超时是_kCFStreamPropertyWriteTimeout