本人第一个接手的模块是注册登陆模块 由于各个软件需求算法不同 加密算法省略 (多为SHA256 AES256)
着重写一下网络请求
代码如下
NSString *loginInfoString = [NSString stringWithFormat:@"xml=%@#%s#%s#", /*账号字符串*/, /*AES密码字符串*/, /*密码字符串*/; //拼接字符串
NSLog(@"login send info :%@", loginInfoString); //发送请求字符串
NSString *post = loginInfoString;
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; //返回一个对象,使用了给定编码其中包含NSData接收 机编码的一种表示方法。
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; //字符串长度
NSString *strUDID = [UIDevice currentDevice].uniqueIdentifier; //获取机器UDID
NSArray *array = [strUDID componentsSeparatedByString:@"-"]; //分隔符
NSMutableString *strNewString = [[NSMutableString alloc] initWithCapacity:20];
for(NSString *subString in array)
{
[strNewString appendString:subString];
}
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSMutableDictionary *dicHeader = [NSMutableDictionary dictionary]; //字典对象用来存SN,UDID
[dicHeader setValue:CJH_PUBLUIC_SN forKey:@"Sn"]; //获取SN
[dicHeader setValue:strNewString forKey:@"UDID"]; //获取UDID
[dicHeader setValue:CURRENT_VERSION forKey:@"Version"];
NSURL *url = [NSURL URLWithString:/*请求地址*/];
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]]; //POST允许Https
[request setURL:[NSURL URLWithString:/*请求地址*/]]; //向服务器发送消息
[request setHTTPMethod:@"POST"]; //发送方式
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; //头字节长度
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; //发送类型
[request setHTTPBody:postData];
[request setAllHTTPHeaderFields:dicHeader];
NSHTTPURLResponse *respone;
NSError *error = nil;
//接受返回信息
NSData *myReturn=[NSURLConnection sendSynchronousRequest:request returningResponse:&respone error:&error];
//返回信息格式转换
NSString *trimText = [[[NSString alloc] initWithData:myReturn encoding:NSUTF8StringEncoding] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"return :%@",trimText);
//返回信息判断
if(0==[trimText length])
{
NSLog(@"没有返回数据!!!!");
}
else
{
//根据返回信息格式做进一步操作
}
上述是需要往头里拼字段的请求方法
ASIHttpRequest更强大 只是小弟不会用...
登录的方法类同 需要注册后服务器的返回进行登录请求