1

我在 NSURLConnection 中遇到问题。我的 didRecieveData 方法没有被调用。我不知道有什么问题。我也经历了几乎所有以前的问题,但似乎没有任何解决办法。

请帮帮我。这是我的代码。

      -(void)gettheJSONdata
     {
           NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:_serverAddress cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

           [request setHTTPMethod: @"GET"];

           NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

          NSLog(@"This is displayed");
     }

     -(void)connection:(NSURLConnection*)connection didReceiveData:(NSData *)data
     {
           NSLog(@"This is not displayed.");
           AppAppDelegate *JSONdata = (AppAppDelegate*)[[UIApplication sharedApplication] delegate];

           JSONdata.userloginJSONdata = [[NSData alloc] initWithData:data];

           NSError *error;

          _result = [NSJSONSerialization JSONObjectWithData:JSONdata.userloginJSONdata options:NSJSONReadingMutableContainers error: &error];

           NSString *test = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
           NSLog(@"Json data : %@",test);
     }

     -(void) connectionDidFinishLoading:(NSURLConnection*) connection
     {
           AppAppDelegate *resultofJSONdata = (AppAppDelegate*)[[UIApplication sharedApplication] delegate];

           resultofJSONdata.JSONdataresult = _result;
      }
4

3 回答 3

0

你没有启动请求。你需要:

[connection start];

或者

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

编辑:我下面的评论有不正确的方法名称。尝试同时实现:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

看看是否其中任何一个被击中。

于 2012-06-07T18:17:05.337 回答
0

最后我解决了这个问题。我没有合成 JSON 数据结果。

我没有意识到这可能会导致 NSURLConnection 出现问题。

于 2012-06-08T09:58:58.517 回答
0

在我的情况下,标题是没有连接 didReceiveData 没有被调用,如果请求需要,请务必添加授权,

    [urlRequest setValue:[UserContext sharedInstance].requesthandler.reqHeader forHTTPHeaderField:@"Authorization"];
于 2013-05-30T07:52:32.790 回答