NSString *url =@"http://ip:port/filename"; //post提交的参数,格式:id=登录名&pwd=登录密码 NSString *post = [NSString stringWithFormat:@"id=%@&pwd=%@",@"test",@"test"]; NSLog(@"参数:%@",post); //将NSSrring格式的参数转换格式为NSData,POST提交必须用NSData数据。 NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; //计算POST提交数据的长度 NSString *postLength = [NSString stringWithFormat:@"%ld",[postData length]]; NSLog(@"数据长度=%@",postLength); //定义NSMutableURLRequest NSMutableURLRequest *request = [[NSMutableURLRequestalloc] init]; [request setURL:[NSURLURLWithString:url]]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; //设置需要post提交的内容 [request setHTTPBody:postData]; NSHTTPURLResponse* urlResponse = nil; NSError *error = nil; //同步提交:POST提交并等待返回值(同步),返回值是NSData类型。 NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; //将NSData类型的返回值转换成NSString类型 //NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; if (error) { NSLog(@"提交失败,异常信息:%@",error); }else{ NSError *err = nil; NSDictionary *mDic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&err]; if (err) { NSLog(@"提交失败,反馈结果无效。"); }else{ NSRange range=[[mDic objectForKey:@"result"] rangeOfString:@"success"]; if(range.location!=NSNotFound) { NSLog(@"字典内容:%@", mDic); NSLog(@"余额:%@", [mDic objectForKey:@"Balance"]); NSArray *contentLenght=[mDic objectForKey:@"ContentLenght"]; NSLog(@"内容长度限制(上限):%@", contentLenght[0]); NSLog(@"内容长度限制(单条):%@", contentLenght[1]); NSLog(@"内容长度限制(多条):%@", contentLenght[2]); NSLog(@"用户:%@", CFURLCreateStringByReplacingPercentEscapesUsingEncoding( kCFAllocatorDefault, (CFStringRef)[mDic objectForKey:@"User"], (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", kCFStringEncodingGB_18030_2000)); //这里获取到的是gbk的,所以urldecode解析gbk,而不是utf8 NSLog(@"提交成功:%@", [mDic objectForKey:@"result"]); }else{ NSLog(@"提交失败:%@", [mDic objectForKey:@"result"]); } } }
反馈结果:
参数:id=test&pwd=test 数据长度=16 字典内容:{ Balance = 0; ContentLenght = ( 240, 67, 60 ); User = "%B2%E2%CA%D4"; result = success; } 余额:0 内容长度限制(上限):240 内容长度限制(单条):67 内容长度限制(多条):60 用户:测试 提交成功:success