我能得到一些帮助吗?我很绝望。我有一个 PHP 脚本,它被发送参数,它进行一些处理,然后使用 echo 输出结果。我用过
[[NSString alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"myPHPPathWithParameters"]] encoding:NSUTF8StringEncoding];
过去获取 php 作为 NSSTRing 回显的信息,并且它有效,但现在它没有。它返回一个 NULL NSString。无论如何,我认为正确的方法是实现 NSURLConnection 因为它实现了用于查看连接进度等的委托方法。因此,我声明了一个静态 NSMutableData *receivedData 然后我使用 iOS 文档中的示例:
NSURLRequest *req=[NSURLRequest
requestWithURL:[NSURL URLWithString:@"http://myphp.php?parameters=paramteres"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
NSURLConnection *con=[[NSURLConnection alloc] initWithRequest:req delegate:self];
if (con)
receivedData = [[NSMutableData data] retain];
else
NSLog(@"Request failed to load.");
然后我实现了委托方法(我也在 self 中声明了 NSURLConnectionDataDelegate):
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSLog(@"RECEIVED DATA;");
[receivedData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"received response;");
[receivedData setLength:0];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSLog(@"FINISHED;");
}
但是这些方法永远不会被调用!终端从不显示任何显示委托方法已执行的日志消息。据我了解,调用此方法并将数据附加到 receivedData 之后,一旦调用 connectionDidFinishLoading 方法,我就必须从 receivedData 获取 NSString。有什么建议么?我还尝试了 NSURLConnection 中的同步请求类方法,但该方法获取整个 HTML,我只想获取 php 回显并将其解析为 NSString 以在应用程序内部使用:(