AFNetworking + CocoaSPDY发送请求,而不是得到响应

时间:2013-12-23 21:52:31

标签: ios objective-c afnetworking spdy

我正试图在AFNetworking上设置SPDY,但我很难知道为什么会有超时。

我已经在SPDY check检查了我的服务器,一切顺利。

我将这行代码放在initWithBaseURL:(NSURL *)url方法

NSString *origin = [NSString stringWithFormat:@"%@:443",kAPIClientBaseURLString];
[SPDYURLConnectionProtocol registerOrigin:origin];

我正在获得看似正常的调试日志

2013-12-23 15:26:37.889 Proj[42859:70b] SPDY [INFO] register origin: <SPDYOrigin: 0x19156fa0>
2013-12-23 15:26:37.890 Proj[42859:420f] SPDY [DEBUG] origin registered: <SPDYOrigin: 0x19156fa0>
2013-12-23 15:26:37.892 Proj[42859:441b] SPDY [INFO] start loading https://api.proj.mx:443/2/ursers/launching_info?param1=1&param2=2

经过几秒钟的等待后,我得到了

2013-12-23 15:28:07.994 Proj[42859:441b] SPDY [INFO] stop loading https://api.proj.mx:443/2/dr/drs?param1=1
2013-12-23 15:28:07.996 Proj[42859:441b] SPDY [WARNING] session connection error: Error Domain=SPDYSocketErrorDomain Code=6 "Unexpected end of stream." UserInfo=0x13e52710 {NSLocalizedDescription=Unexpected end of stream.}

如果我打印错误,它会显示为超时。

如果我删除了SPDY集成(我上面写的两行),它就应该是这样了。

我真的不知道发生了什么,会感激任何帮助和评论。

感谢。

我更改了网址以避免隐私和安全问题。

2 个答案:

答案 0 :(得分:2)

CocoaSPDY库需要一个服务器,该服务器通过专用端口说SPDY,或者当它通过新建立的连接接收到SETTINGS帧时能够动态切换到SPDY管道。

据我所知,GFE目前没有做任何一件事,这意味着目前,Google API端点不支持CocoaSPDY库。

你控制自己的服务器吗?如果是这样,很可能它默认依赖于NPN来建立协议,而你却希望将它配置为在应用程序连接到它时简单地说SPDY。

答案 1 :(得分:1)

您的服务器是否支持SPDY?

尝试在socket:willDisconnectWithError:委托方法中设置断点。您可以检查[socket unreadData]以查看任何未读数据。

如果这没有为您提供任何有用的信息,请尝试实施(并记录)the other delegate methods