代码之家  ›  专栏  ›  技术社区  ›  quantumpotato

ASIHTTP请求在日志中失败,但requestFailed未被调用

  •  0
  • quantumpotato  · 技术社区  · 14 年前

    我有

    -(void)requestFailed:(ASIHTTPRequest *)request
    {
        NSError *error = [request error];
        NSLog(@"Request Failed Error: %@", error);
    }
    

    当我提出我的要求时,我会的

        //add data to the array
        NSString *json = [array JSONRepresentation];
    [request appendPostData:[json dataUsingEncoding:NSUTF8StringEncoding]];
    
    [request startAsynchronous];
    

    我的日志里有:

     0-08-11 16:52:11.652 MyProject[11720:207] Starting asynchronous request <ASIHTTPRequest: 0x5a7df10>
    

    2010-08-11 16:52:11.861 MyProject[11720:207]请求完成数据下载 (国开行)

     -(void)requestFailed
    

    没有人打电话。有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   JosephH    14 年前

    -requestFailed:仅在请求无法完成时返回-例如,联系服务器失败,或服务器不符合http协议。

    如果请求可以完成,那么将调用requestFinished,然后您可以在那里检查http状态代码,这可能表示失败。responseStatusText可能会提供有关失败原因的更多信息。

        2
  •  1
  •   Alex Reynolds    14 年前

    你设定了请求的时间吗 delegate didFailSelector 财产?通常:

    [request setDelegate:self];
    [request setDidFailSelector:@selector(requestFailed:)];
    

    -requestFailed: 方法位于同一类实现文件中。

    同时设置 didFinishSelector