注册 登录
主题 : iOS原生开发 用sessionid咋这么难用
级别: 圣骑士
UID: 564146
精华: 0
发帖: 594
可可豆: 2206 CB
威望: 2196 点
在线时间: 1220(时)
注册时间: 2016-05-20
最后登录: 2018-10-19
0 楼:  发表于: 2018-02-08 16:07    发自: Web Page
来源于 开发环境 分类

iOS原生开发 用sessionid咋这么难用   

[login loginAlert:model.userName password:model.passWord success:^(NSURLResponse *respose) {
        
        NSHTTPCookieStorage * cookie1 =[NSHTTPCookieStorage sharedHTTPCookieStorage] ;
        NSArray *tempArray = [NSArray arrayWithArray:[cookie1 cookies]];
        NSHTTPCookie *cook = nil;
        NSString * value = nil;
        for (NSHTTPCookie *cookiej in tempArray) {
            LDLog(@"+++%@+++",cookiej);
            cook = cookiej;
            value = [cookiej value];
        }
        
        NSURL *url = [NSURL URLWithString:PlayRecordAPI];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        [[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cook];
        [request setHTTPMethod:@"POST"];
        //[request setValue:value forHTTPHeaderField:@"JSESSIONID"];
    
        request.HTTPBody = [@"videoid=111&videoName=111&unitid=000&recard=111"dataUsingEncoding:NSUTF8StringEncoding];
        NSURLSession *session = [NSURLSession sharedSession];
#if 1
      
        
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cook];
#endif
        //4、构造task
        [[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
            LDLog(@"****%@****",dic);
        
            
        }] resume];
        
    } fail:^{
        
    }];


完整代码如上
我在请求A接口前 先请求了下登录的接口
在登录成功的回调里 拿到
NSHTTPCookieStorage * cookie1 =[NSHTTPCookieStorage sharedHTTPCookieStorage] ;
        NSArray *tempArray = [NSArray arrayWithArray:[cookie1 cookies]];
        NSHTTPCookie *cook = nil;
        NSString * value = nil;
        for (NSHTTPCookie *cookiej in tempArray) {
            LDLog(@"+++%@+++",cookiej);
            cook = cookiej;
            value = [cookiej value];
        }
这个cookie

然后对A发起Post请求
[request setValue:value forHTTPHeaderField:@"JSESSIONID"];设置请求头 附上sessionid不行
后台一直说sessionid为空
我改怎么把session传给后台啊
级别: 侠客
状态: 连续签到 - [2天]
UID: 608808
精华: 0
发帖: 78
可可豆: 120 CB
威望: 112 点
在线时间: 181(时)
注册时间: 2017-03-18
最后登录: 2018-10-19
1 楼:  发表于: 2018-02-13 21:17    发自: Web Page
一般都用封装的SDK的,如AF,好吗?
级别: 圣骑士
UID: 564146
精华: 0
发帖: 594
可可豆: 2206 CB
威望: 2196 点
在线时间: 1220(时)
注册时间: 2016-05-20
最后登录: 2018-10-19
2 楼:  发表于: 2018-02-22 08:57    发自: Web Page
回 1楼(God_Love) 的帖子
关键是后台一直说没sessionid
这东西看不见摸不着挺难弄
级别: 侠客
状态: 连续签到 - [2天]
UID: 608808
精华: 0
发帖: 78
可可豆: 120 CB
威望: 112 点
在线时间: 181(时)
注册时间: 2017-03-18
最后登录: 2018-10-19
3 楼:  发表于: 2018-02-22 18:10    发自: iPhone
你要问后台,sessionid到底是放请求头里面还是请求参数里面

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部