我从服务器获取数据到我的iPhone应用程序。
为了从服务器获取数据,我正在使用HTTP Post方法,并且为了解析获得的数据,我正在使用SBJSON Parser。
第一次启动我的应用时,不会提取数据。
它在Console中显示以下故障日志。该应用程序不会崩溃,但只是未提取该数据。
<html>Your request timed out.
Please retry the request. </html>
2011-04-21 08:39:06.339 Hive[1594:207] -JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Unrecognised leading character\" UserInfo=0x4cabe90 {NSLocalizedDescription=Unrecognised leading character}"
)
该应用程序从第二次开始正确提取数据。它仅在应用程序第一次运行时才会出现此错误。
可能出现什么问题?
答案 0 :(得分:0)
您可以使用ASIHTTRequest,如果您有时间,请尝试向服务器发出新请求。
答案 1 :(得分:0)
如果不分析服务器及其资源,很难确定服务器响应时间过长的原因。
要考虑的一件事是,在您最后一次进行JSON尝试与下次进行“第一次尝试”之间会花多少时间。也许然后看看你是否使用网络浏览器重新创建它。
服务器是生产质量服务器吗?如果没有,它可能会“旋转”以回答第一个请求,这个请求花费的时间太长了。
就个人而言,我编写了一个具有失败重试选项的通用JSON订阅源类。如果它没有收到任何内容或无效的JSON,它将根据您传递的内容以y秒的间隔重试x次。最初需要更多的工作,但有两个原因会带来回报。
1)它可以一遍又一遍地重复使用,并且可以在单个文件中进行更新,例如像Terente的好建议一样使用ASIHTTRequest。
2)虽然您可能不希望响应失败,但可能会出现服务器速度缓慢或网络问题,导致响应有缺陷。