Tag: rest

使用AFNetworking重置基本authentication凭证

我正在编写一个REST客户端(使用AFNetworking),并且需要在应用程序的单个实例中触发创build新会话的function。 换句话说,我想: 1 – 与服务器进行身份validation 2 – 做一些REST呼叫 3 – 模拟“注销” 4 – 重新validation与服务器 5 – 做更多的REST电话 AFNetworking非常适合初始身份validation和REST调用,但我无法弄清楚如何清除会话并在同一个实例中“重置”连接。 当我使用ASIHTTP时,我只是这样做了: [ASIHTTPRequest clearSession]; 有没有办法做类似的AFNetworking?

Swift 3如何使用SSL Pinning和AlamoFirevalidation服务器证书?

我正在写swift 3中的一个应用程序,需要与我的服务器通话。 我有完整的证书链,我是CA的der和crt格式(不要与自签名混淆)。 如何在我的应用程序中使用它来validation我的服务器? 以下是我的rest电话和回复 rest电话: var request = URLRequest(url: URL(string: "https://myserver/login")!) request.addValue("Content-Type", forHTTPHeaderField: "application/json") request.httpMethod = "GET" let session = URLSession.shared session.dataTask(with: request) {data, response, err in print("=========================DATA===============================") if data != nil { print(data!) } print("=========================RESPONSE===============================") if response != nil { print(response!) } print("=========================ERR===============================") if err != nil { print(err!) } }.resume() 输出: =========================DATA=============================== […]

Rails API:使用用户名/密码或Facebook令牌从原生移动应用程序authentication用户

所以我一直拉我的头发了几天,现在试图找出如何添加用户名/密码authentication到我的轨道移动API。 以下是我目前身份validationstream程的简要概述: 用户在移动客户端select“使用Facebooklogin”,客户端redirect到Facebook应用并请求access_token 成功的时候,Facebook使用访问令牌进行响应,客户端redirect到我的应用程序。 客户端将访问令牌发送到我的API 我的API使用考拉gem来检查访问令牌是否有效。 如果令牌有效,则Facebook将用户数据发送到创build新用户的API。 如果用户已经存在,我的API会发送用户数据。 我的API在第4步中处理访问令牌,如下所示: def self.authenticate_user_from_facebook(fb_access_token) user = User.new graph = Koala::Facebook::API.new(fb_access_token) profile = graph.get_object('me') #user['fb_id'] = profile['id'] #user['fb_token'] = fb_access_token # Generate user hash uhash = Hash.new uhash['provider'] = 'facebook' uhash['uid'] = profile['id'] uhash['info'] = Hash.new uhash['info']['nickname'] = profile['username'] uhash['info']['name'] = profile['name'] uhash['info']['email'] = profile['email'] uhash['info']['first_name'] = profile['first_name'] uhash['info']['last_name'] […]

Facebook使用现有的用户访问令牌与Spring社交

这是我现在有的: Spring REST服务,其中许多API需要用户进行身份validation “注册”API(/ api / v1 / register) 采用用户名/密码(/ api / v1 / login)的“login”API 依靠Spring Social和Spring Security创buildUser Connection并在(/ auth / facebook)中login用户的'Facebook Login'API 我的问题是,我希望这些API被多个客户端使用,但Facebooklogin的方式现在,它不适用于移动(在网站上很好的作品)。 这是移动场景: 我使用Facebook的iOS SDK来请求用户的许可 Facebook返回一个用户访问令牌 我想发送我的后端服务这个令牌,并让Spring Social接受它,创build用户连接等。 可以这样做吗? 或者我将不得不写我自己的API来坚持用户连接? 感谢任何帮助!

基于REST的客户端 – 服务器同步

这个问题是关于我认为是在Android / iOS开发中的一个非常普遍的问题,但我还没有find任何“标准”的解决scheme。 假设我们有一个相当普通的REST API。 服务器数据库包含(除其他之外)具有1:N关系的表格countries和towns 。 客户端(移动应用程序)想要维护这两个表的本地快照。 因此,当它处于脱机状态时,它可以执行通常通过REST执行的查询,例如:“获取人口> = 100的奥地利城镇名单”? 如何解决这个问题? 第一个问题:一致性。 客户端应该有两张表的快照。 如果客户端下载towns表的更新并下线,某个城镇可能会引用一个不在countries表的本地副本中的countries 。 第二个问题:客户端应该只下载新的/删除/更改的行。 get_updates_since(…) REST并使用一些自定义RPC调用,比如get_updates_since(…) ? 第三个问题:如何将客户端的数据库副本(可能离线)的本地更改与服务器同步? 自定义RPC调用?

websocket和基于回合的游戏服务器的长轮询之间的区别

我正在写一个iOS游戏的服务器。 游戏是基于回合的,并且服务器需要向客户推送信息的唯一时间是通知对手的移动。 我很好奇,如果任何人都可以评论使用websockets和长轮询之间的执行差异的性能和易用性。 另外,如果我使用websocket,我应该只用它来接收信息,并发送POST请求的一切,或者所有的通信都应该通过websocket? 另外,如果我也有兴趣做一个networking客户端,还有什么需要额外考虑websockets和长轮询?

URL编码iOS NSURL错误

在Firefox中打开的URL,桌面上的Chrome浏览器,在iPhone上的WebView中不打开。 这个URL据说是访问一个GET请求。 当创buildNSURL没有percentescaping的url不会得到生成。 当使用percentescape时,url会redirect到一个Bad url内容。 在桌面浏览器上使用不同的编码,而不是在iPhone上使用? 或移动Safari? 有没有不同的方式来编码在iOS中的URL,而不是使用 -stringByAddingPercentEscapesUsingEncoding -CFURLCreateStringByAddingPercentEscapes 从服务器生成不好的请求内容页面。 任何帮助将是非常好的,谢谢。 编辑: 生成的URL如下 http://something.test.com/iostest/index.html?{"a":"b"} pipe理认为,不编码大括号是造成iOS中的问题。 如在 NSString *tempUrlSting = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)tempURLA,CFSTR("{}"), CFSTR("\""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding))); NSURL *tempUrl=[NSURL URLWithString:tempUrlSting]; 如果不是在URL中对大括号进行编码,而是使用[Rob's answer] [1]对其余的进行编码,如上所述。 创buildNSURL时,url是空的。 如果对大括号进行编码,则生成的URL很好,但服务器会引发exception。 这个问题build议使用CFNetworking。 编辑 使用CFNetworking如下 -(void)getDataFromUrl{ CFStringRef tempURLA = CFSTR("http://my.test.server/iostest/index.html?{\"a\":\"b\"}"); CFStringRef tempUrlSting = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)tempURLA,CFSTR("{}"), CFSTR("\""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); CFURLRef myURL = CFURLCreateWithString(kCFAllocatorDefault, tempUrlSting, NULL); CFStringRef […]

QuickBlox REST API Laravel上的意外签名

我从QuickBlox REST API获得以下json响应: { "base": ["Unexpected signature"] } 我的签名方法: private function createSignature($login, $password, $timestamp, $nonce) { $signatureContent = "application_id=" . env('QB_APP_ID') . "&auth_key=" . env('QB_APP_KEY') . "&nonce=" . $nonce . "&timestamp=" . $timestamp . "&user[login]=" . $login . "&user[password]=" . $password; return hash_hmac('sha1', $signatureContent, env('QB_APP_SECRET')); } 应用程序ID和授权密钥是正确的。 $signatureContent值(中断线只是为了提高文本的可读性): application_id=24544 &auth_key=6N9bYKT-fKGRQ7q &nonce=268302610 &timestamp=1438287989 &user[login]=tester1@test.net &user[password]=qwer1234 当我尝试创build一个会话时使用这个参数来得到这个响应: […]

iOS:pipe理REST端点的简单方法

我们基于REST的应用程序可用于在多个内部环境中进行testing,每个环境都有不同的REST端点。 有没有一种简单的方法来设置iOS(Swift 3)应用程序中的环境级别configuration? 我已经看到了一些方法,但他们似乎都相当参与。

需要有关RestKit数据同步scheme的帮助

我为iOS应用程序使用RestKit。 我已经做了以下使用restkit:1.从JSON格式的restapi拉服务器对象。 2.删除服务器上不存在的核心数据中的孤立对象。 现在我必须build立下面的场景,如果互联网可用的设备和用户正在添加一个新的数据项,那么我应该怎么做,即我应该在本地存储新的数据,然后张贴到服务器或首先我后数据到服务器,并拉回到设备上? 其次,如果互联网不可用的设备和用户插入一个新的数据项,然后在本地保存数据,在互联网的可用性如何张贴新添加的数据项到服务器,即我应该遵循什么样的方法,如果restkit可以帮助我解决这个情况?