我可以得到一些帮助吗?我很绝望。我有一个PHP脚本,它发送参数,它执行一些处理,然后使用echo输出结果。我用如何使用NSURLConnection获取PHP回显?
[[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.");
然后,我实现委托方法(我也自我声明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,然后我必须从receiveData获取NSString,一旦connectionDidFinishLoading方法被调用。有什么建议么?我也尝试了NSURLConnection中的同步请求类方法,但该方法获得了整体HTML,我只是想获得什么PHP回声,并解析它作为NSString在应用程序内部使用:(
但委托方法永远不会叫!所以receivedData总是空。 – acib708