我想验证从我的iPhone应用程序,我可以调用我的自定义网站API(PHP)和发送/接收信息没有任何问题.如果是这样,如果有一个首选的交易语言?XML,JSON,其他?我只是不确定是否有任何Web调用需要通过SSL进行或不.只是一个无害的问题。
nwo49xxi1#
你可以使用XML或者JSON。JSON被认为比XML更轻量级。
bpsygsoo2#
SDK缺乏对XML和JSON的原生支持。第三方库对JSON的支持稍好一些-我会使用它。你不需要使用SSL -你可以使用任何你想要的协议和端口。您可以执行类似[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];的操作,并将NSMutableURLRequest、NSURLResponse和NSError作为三个参数。
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSMutableURLRequest
NSURLResponse
NSError
jei2mxaa3#
我认为json应该是一个很好的解析媒介。json-framework可以很容易地将NSDictionary和原始对象转换为json数据,反之亦然。让使用json的web服务变得轻而易举。
{ name : value , name : value } = NSDictionary [ value , value , value] = NSArray NSString, NSNumber, BOOL and NSNull are the items it create, I believe.
字符串查看此页https://github.com/stig/json-framework我将包括一些我使用的代码,这些代码是基于json框架构建的,并与json web服务一起工作。
- (NSDictionary*) sendJSONRPCRequestTo:(NSString*) url forCommand:(NSString*)command withParamaters:(NSMutableArray*) parameters synchronous:(BOOL) sendSynchronous { if (self.commandId == nil) { self.commandId = @"1";//Just set a commandID } NSMutableURLRequest *request = [self.baseTransaction makeNewRequestFor:url]; NSMutableDictionary *mainPackage = [NSMutableDictionary dictionary]; [mainPackage setValue:self.commandId forKey:@"id"]; [mainPackage setValue:command forKey:@"method"]; [mainPackage setValue:parameters forKey:@"params"]; NSString *jsonData = [mainPackage JSONRepresentation]; [request setValue:command forHTTPHeaderField:@"X-JSON-RPC"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; if (jsonData != nil && [jsonData isEqual:@""] == NO) { [request setHTTPMethod:@"POST"]; [request setValue:[[NSNumber numberWithInt:[jsonData length]] stringValue] forHTTPHeaderField:@"Content-Length"]; } [request setHTTPBody:[jsonData dataUsingEncoding:NSUTF8StringEncoding]]; if (sendSynchronous) { NSHTTPURLResponse * response = nil; NSError * error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; NSString *jsonResult = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; NSDictionary *jsonDict = nil; @try { jsonDict = [jsonResult JSONValue]; } @catch (NSException * e) { NSLog(@"Error: %@",jsonResult); jsonDict = [NSMutableDictionary dictionary]; [jsonDict setValue:self.commandId forKey:@"id"]; [jsonDict setValue:@"Unable to call function on server" forKey:@"error"]; [jsonDict setValue:[NSNull null] forKey:@"result"]; } @finally { return jsonDict; } } return nil; }
型此代码用于.net服务器上的jayrock webservices。
im9ewurl4#
您可以使用HTTP库或内置的可可Framework代码调用任何URL。我推荐ASIHTTPRequest,它允许异步HTTP请求和简单的进度报告。您可以使用NSXMLParser类解析返回的数据(作为XML)。该类的缺点是它是线性的,不太灵活。Ray Wenderlich有an article on the topic of XML parsing on iOS。参见this question,其中提到了JSON parser for iOS。
4条答案
按热度按时间nwo49xxi1#
你可以使用XML或者JSON。JSON被认为比XML更轻量级。
bpsygsoo2#
SDK缺乏对XML和JSON的原生支持。第三方库对JSON的支持稍好一些-我会使用它。
你不需要使用SSL -你可以使用任何你想要的协议和端口。
您可以执行类似
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
的操作,并将NSMutableURLRequest
、NSURLResponse
和NSError
作为三个参数。jei2mxaa3#
我认为json应该是一个很好的解析媒介。json-framework可以很容易地将NSDictionary和原始对象转换为json数据,反之亦然。
让使用json的web服务变得轻而易举。
字符串
查看此页https://github.com/stig/json-framework
我将包括一些我使用的代码,这些代码是基于json框架构建的,并与json web服务一起工作。
型
此代码用于.net服务器上的jayrock webservices。
im9ewurl4#
您可以使用HTTP库或内置的可可Framework代码调用任何URL。
我推荐ASIHTTPRequest,它允许异步HTTP请求和简单的进度报告。
您可以使用NSXMLParser类解析返回的数据(作为XML)。该类的缺点是它是线性的,不太灵活。Ray Wenderlich有an article on the topic of XML parsing on iOS。
参见this question,其中提到了JSON parser for iOS。