我通过TwitterKit API创建一个NSURLRequest来访问Twitter用户流,如下所示:
let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
"GET",
URL: "https://userstream.twitter.com/1.1/user.json",
parameters: parameters,
error: &error)
这意味着我无法使用通常的初始化程序,并且可以访问超时间隔。因此,超时间隔设置为默认值10秒,并且在初始化后只读取。
当我开始这样的连接时:
self.urlConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)
self.urlConnection!.start()
我通过委托方法在前10秒获得结果,然后它被切断。
现在解决这个问题的方法是每次切断连接时重新启动连接,但这并不是理想的,显然存在丢失停机时间内任何数据的风险。 / p>
如果我试试这个,我只会收到一个错误:
Twitter.sharedInstance().APIClient.sendTwitterRequest(request, completion: {
(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
})
它返回一个空的响应和数据,错误为The request timed out.
如何在10秒后没有URL请求超时的情况下获得此流式响应?
答案 0 :(得分:2)
我不熟悉Twitter API,但是如果该方法返回
NSURLRequest
然后您可以制作一个可变副本并对其进行修改:
let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod(...)
let newRequest = request.mutableCopy() as! NSMutableURLRequest
newRequest.timeoutInterval = ...