在iphone中rest的Web服务

我现在有一个问题。 我需要将一个事务ID和一个用户密码传递给一个剩余服务,并且假设返回一个真/假值(以XML格式)。 然而,它一直返回我(空)..我完全失去了一些请帮助。

NSString *urlString = [NSString stringWithFormat:@"https://10.124.128.93:8443/axis2/services/C3WebService/completeWithdrawal Transaction?transactionId=%@&password=%@", _transactionID.text, _userPassword.text]; NSURL *url = [[NSURL alloc] initWithString:urlString]; NSString *result = [[NSString alloc] initWithContentsOfURL:url]; NSLog(@"%@",result ); 

我的结果是不断返回我空。 我如何继续从这里?

考虑使用NSURLConnection,它有一个callback结果,还有一个callback来获取详细的错误细节。 它也不会在UI线程上执行(在请求期间不会挂起UI)。

  NSURL *url = [NSURL URLWithString:@"http://www.mysite.com"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setHTTPMethod:@"GET"]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

然后你可以实现委托方法来获取错误,数据和其他细节:

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void) connectionDidFinishLoading:(NSURLConnection *)connection { [connection release]; NSString* responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"result: %@", responseString); [responseString release]; } - (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"error - read error object for details"); } 
 .h: NSMutableData *responseData; .m: - (void)load { NSURL *myURL = [NSURL URLWithString:@"https://10.124.128.93:8443/axis2/services/C3WebService/completeWithdrawal Transaction?transactionId=%@&password=%@", _transactionID.text, _userPassword.text]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { responseData = [[NSMutableData alloc] init]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { [responseData release]; [connection release]; [textView setString:@"Unable to fetch data"]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"Succeeded! Received %d bytes of data",[responseData `enter code here` length]); NSString *txt = [[[NSString alloc] initWithData:responseData encoding: NSASCIIStringEncoding] autorelease]; } 

您可以尝试使用“initWithContentsOfURL:encoding:error:”来代替,并检查“错误”。 另外,使用查尔斯或其他http嗅探器,并将结果与​​直接的浏览器请求进行比较(您是否在浏览器中检查结果?)