1)发送json给服务器
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// 1.URL
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/order"];
// 2.请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// 3.请求方法
request.HTTPMethod = @"POST";
// 4.设置请求体(请求参数)
// 创建一个描述订单信息的JSON数据
NSDictionary *orderInfo = @{
@"shop_id" : @"1243324",
@"shop_name" : @"啊哈哈哈",
@"user_id" : @"899"
};
// 把字典转化成NSData
NSData *json = [NSJSONSerialization dataWithJSONObject:orderInfo options:NSJSONWritingPrettyPrinted error:nil];
request.HTTPBody = json;
// 5.设置请求头:这次请求体的数据不再是普通的参数,而是一个JSON数据
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
// 6.发送请求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (data == nil || connectionError) return;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSString *error = dict[@"error"];
if (error) {
[MBProgressHUD showError:error];
} else {
NSString *success = dict[@"success"];
[MBProgressHUD showSuccess:success];
}
}];
}
2)URL的转码问题
url中不能包含中文,所以呢要对中文进行转码
NSString *urlStr = [NSString stringWithFormat:@"http://localhost/login?username=喝喝&pwd=123"];
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
3 )向服务器发送多值参数
http://localhost:8080/MJServer/weather?place=beijing&place=shenzhen&place=ss 这种类型就是多值参数。其返回内容是:{“weathers”:[{“city”:”beijing”,”status”:”晴转多云”},{“city”:”shenzhen”,”status”:”晴转多云”},{“city”:”ss”,”status”:”晴转多云”}]}
代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/weather"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// 设置请求ff
request.HTTPMethod = @"POST";
// 设置请求体(请求参数)
NSMutableString *param = [NSMutableString string];
[param appendString:@"palce=beijing"];
[param appendString:@"&place=tianjin"];
[param appendString:@"&place=luyi"];
param = [NSMutableString stringWithString:[param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; // 如果需要http encode的话,加上此句
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];
// 发送请求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (data == nil || connectionError) {
NSLog(@"HAVE A ERROR");
}
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@",dict);
NSString *error = dict[@"error"];
if (error) {
[MBProgressHUD showError:error];
}else{
NSLog(@"%@",dict);
}
}];
}