首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UrlConnection Iphone

UrlConnection Iphone
EN

Stack Overflow用户
提问于 2010-11-08 18:43:47
回答 2查看 708关注 0票数 0

我正在尝试使用以下代码从服务器获取数据。

代码语言:javascript
复制
+ (NSString *) getData:(NSString *)methodName parameters:(NSDictionary *) parameters error:(NSError **)error
{
 NSString *body  = [UdoziProxy getRequestBody:methodName parameters:parameters];

 NSMutableURLRequest *request = [UdoziProxy createRequest:body];

 // Send the request .
 NSHTTPURLResponse *urlResponse = nil;

 NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:error];

 if (responseData == nil || error !=nil) {

  return nil;

 }

 return [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease];
}

当服务器运行时,它工作得很好,但是当我故意停止服务器时,responseData对象仍然有值,并且不是空的。如何处理连接中断或服务器宕机的情况?

EN

回答 2

Stack Overflow用户

发布于 2010-11-08 18:52:03

您需要在NSURLRequest对象上设置cache policy。如果同步API仍然不支持这一点,那么您需要切换到使用异步API,并在收到缓存请求对象时将其丢弃。如果这不起作用,那么也许你的网络有一个透明的代理,它正在为你做一些缓存。

票数 0
EN

Stack Overflow用户

发布于 2013-03-02 14:08:58

必须在中实现NSURLConnection委托

您可以在以下委托中获取失败状态

代码语言:javascript
复制
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

responseData =nil }

在那里,您必须将接收到的数据设置为nil值

同样,获取数据也是安全的

代码语言:javascript
复制
- (void)connectionDidFinishLoading:(NSURLConnection *)connection  

{}

,指示连接已完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4123105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档