目标C NSURLConnection没有获得响应数据

时间:2012-11-29 12:58:39

标签: objective-c xcode nsurlconnection

我正在创建此应用程序,它与我的Web服务器上的PHP脚本进行通信。

昨晚它工作得很好。但今天有两个连接没有得到回复。

我在浏览器中尝试过NSURL链接,效果很好。其中一个连接工作,但正如我说两个连接不起作用?

- (void) getVitsTitelByID:(int)id {

NSString *url = [NSString stringWithFormat:@"http://webserver.com   /ivitserdk.php?function=gettitelbyid&id=%d", id];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:1.0];
connectionTitelByID = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

connectionDidReciveData:

if(connection == connectionTitelByID){
    responseTitel = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

connectionDidFinishLoading:

if(connection == connectionTitelByID){
    titelLabel.text = responseTitel;
}

我已经尝试过调试它了。

responseTitel似乎是(null)。

帮助将被定价:)

1 个答案:

答案 0 :(得分:2)

didReceiveData可以被称为N(几次)次。将数据保存到可变数据缓冲区(将其排队),并在didFinish中将其读入字符串

模拟代码:

- (void) getVitsTitelByID:(int)identifier {
    NSString *url = [NSString stringWithFormat:@"http://webserver.com/ivitserdk.php?function=gettitelbyid&id=%d", identifier];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:1.0];
    connectionTitelByID = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    dataForConnectionTitelByID = [NSMutableData data];
    [connectionTitelByID start];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    if(!data.length) return;

    if(connection == connectionTitelByID)
        [dataForConnectionTitelByID appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    if(connection == connectionTitelByID) {
        id str = [[NSString alloc] initWithData:dataForConnectionTitelByID encoding:NSUTF8StringEncoding];
        NSLog(@"%@",str);
        dataForConnectionTitelByID = nil;
        connectionTitelByID = nil;
    }
}
相关问题