使用iOS中的JSONModel / JSONHTTPClient处理Cookie

时间:2015-05-23 07:10:42

标签: ios objective-c jsonmodel

在我当前的项目中,我使用 +(void)postJSONFromURLWithString:(NSString*)urlString params:(NSDictionary*)params completion:(JSONObjectBlock)completeBlock; 方法创建帐户并首次登录我的应用程序。第二次及以后,登录呼叫不存在,应用程序直接打开用户的配置文件屏幕。但是当我更新用户配置文件(姓名,联系电话等)时,我将从声明中获得响应状态代码403

NSLog(@"Response status code = %i", (int)response.statusCode);

在方法

的实施中添加

+(NSData*)syncRequestDataFromURL:(NSURL*)url method:(NSString*)method requestBody:(NSData*)bodyData headers:(NSDictionary*)headers etag:(NSString**)etag error:(JSONModelError**)err

由于服务器端的授权失败,通常会调用

403。 当我使用

进行API调用时,有什么方法可以查看cookie到服务器端的内容

+(void)postJSONFromURLWithString:(NSString*)urlString params:(NSDictionary*)params completion:(JSONObjectBlock)completeBlock;

1 个答案:

答案 0 :(得分:0)

JSONModel的内置网络支持是故意非常基本/原始/有限的。它不支持自定义身份验证,Cookie等。

您最好使用NSURLSession发出请求以获取数据,然后仅使用JSONModel进行反序列化 - 而不是整个请求。

e.g:

NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"https://example.com/mydata.json"];

NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    MyModel *obj = [[MyModel alloc] initWithData:data error:nil];
}];

[task resume];