objective c使用http访问服务器
通过http 方式向服务器发送消息,同时从服务器端得到json 串,但是现在遇到了问题,当我通过了登陆页面之后,再次向服务器端发起请求,结果服务器端显示我未登陆,不知道该用什么方法来保持于服务器端的登陆状态。
>> 第一次登录后 取得一个jsessionid 以后要是这个id 还有效 就带上它[" set-cookie" 这个字段就是你这个jsessionid值 ]
一段使用cookies的代码:
- (NSURLRequest *)HttpPost:(NSString *)url {
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies];
NSHTTPCookie *Cookie = nil;
for(NSHTTPCookie *_cookie in cookies) {
if([[_cookie domain]isEqualToString:YOURDomain]) {
_iCookie = _cookie;
break;
}
}
NSMutableURLRequest *_request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[_request setHTTPMethod:@"POST"];
[_request setTimeoutInterval:10];
[_request setCachePolicy:NSURLRequestUseProtocolCachePolicy];
[_request setHTTPShouldHandleCookies:YES];
[_request setValue:[NSString stringWithFormat:@"%@=%@", [_Cookie name], [_Cookie value]] forHTTPHeaderField:@"Cookie"];
return _request;
}