从 iOS / Objc 访问 JSON/Rest 服务器的方法?

Posted

技术标签:

【中文标题】从 iOS / Objc 访问 JSON/Rest 服务器的方法?【英文标题】:Ways to access JSON/Rest server from iOS / Objc? 【发布时间】:2015-09-08 00:40:46 【问题描述】:

我的 ios 应用需要使用带有基本 HTTP 身份验证 (401 / basic-auth) 和 JSON 作为数据的 HTTP POST 访问 REST 服务器。

我有一个选择:

使用 ResKit 使用 AFNetworking 使用 HTTPUrlSession 和来自标准 API 的 JSON 序列化程序实现自己的客户端。

我不喜欢手动方法,因为它似乎太冗长并且需要大量代码(HTTPUrlSession 带有 POST 和 HTTP 身份验证不是很简单)但是 ResKit 不是很成熟:它是 0.x 版本。

我觉得我需要 ResKit 或 AFNetworking。 解决我的问题的最佳方法是什么?你如何使用 iOS 的 RESTful 服务?

【问题讨论】:

它需要什么样的“访问”? NSURLRequest 怎么了? 【参考方案1】:

AFNetworkingRestKitNSURLRequest 的包装器。 在NSURLSession 上使用内置解决方案也与使用AFNetworking 相同。

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://whatever.com"]];

这是基本身份验证的一些示例。

NSString *authStr = @"username:password";
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *authValue = [NSString stringWithFormat: @"Basic %@",[authData base64EncodedStringWithOptions:0]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];

//create the task
NSURLSessionDataTask* task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
];

【讨论】:

以上是关于从 iOS / Objc 访问 JSON/Rest 服务器的方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何从lldb中的objc访问swift方便变量?

socket.IO-objc 与 AZSocketIO

IOS Objc如何在滚动后正确加载UICollectionViewCell

如何避免在带有 Swift 4 的 iOS 11 中使用带有刷新控件的 @objc?

从测试目标看不到 Swift 类

如何从 wp json rest api 获取特定数据