Tag: web services

XCode iDevice应用程序 – 如何侦听来自服务器的消息/请求?

我有一个项目,我需要能够从运行Web服务的服务器发送消息到特定的iDevice。 我不知道如何做到这一点,所以任何帮助,非常感激。 场景:我有一个networking服务,从一个iDevice(也可以是Mac或PC,甚至是一个Android设备)接收一些消息。 根据这个消息的内容,我需要能够从Web服务发送消息到另一个iDevice(我知道具体的iDevice的IP地址)。 我知道如何使用URLRequests将消息从iDevice发送到服务器,并从服务器收集响应。 原则上,我可以每10秒向服务器发送一个请求,询问服务器是否有任何新的消息发送给发送者(发送请求的iDevice),但是我确信这不是正确的方法。 有没有办法让iDevice监听特定端口上的服务器通信,以便iDevice只有在从服务器接收到消息来做某事时才会执行某些活动,例如,在应用程序中显示消息以侦听服务器通信? 我想我需要使用类似于用于iMessage的技术,但是这是如何完成的? 我正在使用XCode 4.6.2,iOS 6.1。 编辑:只是为了澄清我的需要更多一点:APNS似乎是太不可靠(至less这是我已经读过关于APN的其他线程),因为在某些情况下,Web服务可能需要发送2个不同的消息一个iDevice在1分钟之内(在某些情况下秒),而据我在其他线程阅读,这是不可能的,因为苹果的服务器如何处理ASPNS。 我正在开发的应用程序只需要在应用程序处于活动状态时从服务器接收消息 – 有没有办法,不使用APN来执行此操作,例如,让应用程序监听特定端口上的通信?

如何调用Web服务的loginfunction?

我在PHP中有一个Web服务API,我想在我的ios应用程序中使用这个API进行login。 if (isset($_POST['tag']) && $_POST['tag'] != '') { // Get tag $tag = $_POST['tag']; // Include Database handler require_once 'include/DB_Functions.php'; $db = new DB_Functions(); // response Array $response = array("tag" => $tag, "success" => 0, "error" => 0); // check for tag type if ($tag == 'login') { // Request type is check Login $email […]

如何在PHP中格式化列表以用作目标C中的NSArray?

所以我是一个全新的PHP。 事实上,我对此一无所知。 我正在开发一个iPhone应用程序,旨在从服务器获取项目列表。 我的PHP脚本实际上只是一个“回声”命令。 我想知道什么是最好的方式来格式化我的PHP列表,所以它会看起来尽可能接近(如果不是相同的)的NSArray在客观的C. 所以例如,如果我的名单是:AAA,BBB,CCC,DDD 通过在obj-C中运行这个: NSArray *myAwesomeArray = [[NSArray alloc] initWithObjects: @"AAA", @"BBB", @"CCC", @"DDD", nil]; 我会得到这个,这是我想要的: myAwesomeArray IS ( AAA, BBB, CCC, DDD ) 当这样做与PHP这样(再次,可能是错误的格式为此目的): echo "AAA, BBB, CCC, DDD" 而这在objc方面: NSString *urlString = @"http://……"; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init]; [request setTimeoutInterval:60.0]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *myPHPArray = [[NSString alloc] […]

使用获取的请求sorting描述符

我有我的sorting描述符的问题。 我正在获取一个足球俱乐部的排名。 这是我的web服务如何给数据返回。 "ranking": [ { "type": "competitie", "position": "1", "name": "Club Brugge", "gamesPlayed": "10", "gamesWon": "6", "gamesTied": "4", "gamesLost": "0", "goalsPos": "25", "goalsNeg": "12", "goalsDiff": 13, "points": "22" } 这是我的提取请求。 – (void)getKlassement // attaches an NSFetchRequest to this UITableViewController { NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Klassement"]; request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"position" ascending:YES]]; self.fetchedResultsController = [[NSFetchedResultsController […]

WCF或Web服务(.asmx)的iOS应用程序?

我对Web开发和Web服务相当陌生。 我一直在使用C#在.NET中使用传统的Web服务(.asmx)。 有人build议,现在很多服务使用WCF,我想知道如果我应该学习WCF,并使用它与我的iOS应用程序进行通信。 看起来像WCF将是一个学习曲线,因为我没有任何.NET框架的经验(在C#中很less有经验)。 我不确定是否值得花时间在WCF上,还是应该使用传统的编写Web服务的方式。 有什么build议么?

发送图像到.NET Web服务

我正在开发一个使用.NET Web服务的iOS应用程序。 在其中一个Web服务中,我必须将图像作为HttpPostedFileBase发送到名为“ file ”的参数中,该参数将返回图像URL和状态参数作为响应。 其实我不确定什么是HttpPostedFileBase。 但是我试图把它作为字节发送。 我从WS获取图像URL为空。 我想WS调用工作正常,但问题是我发送图像的方式。 我正在使用下面的代码将图像数据追加到HTTP正文。 NSData *imageData = UIImageJPEGRepresentation(image, 1); [postData appendData:[[NSString stringWithFormat:@"–%@\r–\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"file.jpeg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:imageData]; [request addValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"]; [request addValue:[NSString stringWithFormat:@"%i", [postData length]] forHTTPHeaderField:@"Content-Length"]; [postData appendData:[[NSString stringWithFormat:@"–%@\r–\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 请让我知道我怎么得到这个工作。 让我知道如果你需要更多的细节。 谢谢。

Restkit路由错误

我正在尝试做一个简单的职位login屏幕。 我发布一个电子邮件地址和密码。 这给了我一个带有状态码的JSON。 如果这个代码是200,它也包含一个person对象。 如果是其他东西,它包含一个错误对象。 我有这个张贴的代码。 RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://******.com.be/nl/webservice/company-user/login/apikey/key**"]]; NSDictionary *dictionary = @{ @"email": _txtLogin.text, @"pwd": _txtPass.text}; NSMutableURLRequest *request = [manager requestWithObject:nil method:RKRequestMethodPOST path:nil parameters:dictionary]; RKObjectRequestOperation *operation = [manager objectRequestOperationWithRequest:request success:^(RKObjectRequestOperation *operation, RKMappingResult *result) { NSLog(@"Loading mapping result: %@", result); } failure:nil]; [operation start]; 但是这个代码导致了下面的错误。 *** Terminating app due to uncaught exception […]

与networking服务器同步核心数据

我正在创build一个关于鸟的应用程序。 这个应用程序也应该在离线模式下工作。 所以我决定使用核心数据。 我计划有一个约700个logging的表。 所有的鸟类将以桌面视图显示。 工作stream程应该是这样的: 用户启动应用程序 请求在后台发送到服务器 响应被parsing 数据库被更新 我感兴趣什么是最好的方法来做到这一点。 我的观点是添加到“最后修改”字段的请求,这将减less数据库应该更新的次数。 我应该删除我的实体的所有实例,或循环他们逐一比较“最后修改”字段,然后更新/删除/插入? 有没有人做过时间分析? 当用户在已经删除旧实例并且没有插入新的时候用户打开屏幕时,他会看到一个空的表视图,如何处理这种情况,我需要一个tmp实体吗? 还有其他我错过的陷阱吗?

parsing器错误错误域= NSXMLParserErrorDomain代码= 4“操作无法完成。”

我打电话给一个Web服务如下: -(void)verifyEmailAndPasswordWebservices { NSString *MD5Password = [ self MD5]; NSLog(@"text field password %@",txt_Password.text); NSLog(@"converted password %@",MD5Password); NSString *soapMsg =[NSString stringWithFormat: @"<?xml version=\"1.0\" encoding=\"utf-8\"?>" "<SOAP-ENV:Envelope SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:tns=\"http://php:8393/includes/webservice\">" "<SOAP-ENV:Body>" "<ns1:LoginUserRequest xmlns:ns1=\"http://schemas.xmlsoap.org/soap/envelope/\">" "<email xsi:type=\"xsd:string\">%@</email>" "<pass xsi:type=\"xsd:string\">%@</pass>" "</ns1:LoginUserRequest>" "</SOAP-ENV:Body>" "</SOAP-ENV:Envelope>",txt_EmailOrMobile.text,MD5Password]; //—print it to the Debugger Console for verification— NSLog(@"soapMsg……….%@",soapMsg); NSURL *url = [NSURL URLWithString:@"http://10.0.0.115:8393/includes/webservice/login1.php"]; req = […]

iOS:推送通知作为Web服务轮询的“触发器”?

我刚刚开始学习OBJ-C,但我有一个目标应用程序,我正在努力build设; 这个应用程序将是iPad上的主/细节应用程序,将需要保持自己更新与“实时”的web服务。 当多个用户中的一个(在独立的iPad上)在应用程序内执行某些操作时,还需要将数据发送到远程MySQL DB。 编辑:正如lxt已经很有帮助地澄清:“是否适合使用推送通知作为提示轮询web服务” – 答案是有点。 我为这个问题设想的例子是一个Widget库存pipe理器,它具有stream入表格视图的“传入”库存和用户将库存拖放到详细视图中的“库存存储箱” 。 像这样: 注:我的应用程序不要求自己保持更新,当不在前台。 它可以愉快地睡觉,直到它再次启动; 此时需要用最新的数据更新自己。 凯尔使用applicationWillEnterForeground为这个问题的具体方面提供了一个答案: 为了完成这个任务,我的webservice服务器已经过期了,我想到了一个解决scheme,它结合了webservice轮询和PUSH通知,当一个用户(iPad)对数据进行任何更改时触发轮询。 所以,stream量会是这样的: Web服务的“默认”轮询会每分钟触发,而不pipe用户可能执行的任何操作。 当用户从桌面视图中拖出一个库存项目并将其放入一个存储箱中时,该存储箱会向login到同一个总帐户的任何其他iPad发起一个PUSH通知,并触发一个web服务轮询来刷新其数据。 简而言之:任何时候,当iPad“A”上的用户改变任何东西时,推送通知被发送到iPad“B”,iPad“C”等。当B,C,D等接收到推送时,他们轮询服务器刷新他们的数据。 另一种方法是让每个触发Web服务的帐户上的每个iPad每15秒轮询一次; 这似乎对我来说是带宽昂贵的(并且通常会导致数据没有变化)。 我的问题不是“我怎么…?” 更多的是“我该怎么…?”。 我意识到StackOverflow可能会发现这有点“主观”,但我认为这是一个非常值得考虑的问题,考虑到我花了两天研究这个特定的做法(使用PUSH通知触发web服务轮询),并发现正好零相关的文章。 感谢您抽时间阅读。 任何帮助,将不胜感激。 示例代码和/或特定框架/套件信息将不胜感激。 但现在我真的需要知道这是不是一个好主意。