说明:最近公司有个急活需要封装一个IOS的接口并提供出去,对于我这种不会IOS的人简直是要了命啊,现将写好的方法逐一记录吧,以后如果有更好的再做更新!特别说明下面的方法是比较老的编写方式且是同步的,异步的已经有更好的编写方式,之后在更新吧!
/**
* POST提交方法
* @param url 接口请求地址
* @param mulDic 请求参数(JSON)
*/
+ (NSString *) post:(NSString *) url mulDic:(NSMutableDictionary *) mulDic{
@try{
// 接口请求的URL
NSURL *uri = [NSURL URLWithString:url];
// 接口请求的json数据承载
NSData *postDatas = nil;
NSString *reqData = @"";
// NSJSONSerialization 组json字符串
if ([NSJSONSerialization isValidJSONObject:mulDic]) {
postDatas = [NSJSONSerialization dataWithJSONObject:mulDic options:NSJSONWritingPrettyPrinted error:nil];
NSString *str = [[NSString alloc] initWithData:postDatas encoding:NSUTF8StringEncoding];
reqData = [reqData stringByAppendingString:str];
// NSData *postData = [reqData dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
postDatas = [NSData dataWithBytes:[reqData UTF8String] length:[reqData length]];
}
// 请求体
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setHTTPMethod:@"POST"]; // 指定请求方式
[request setURL:uri]; // 设置请求的地址
[request setHTTPBody:postDatas]; // 设置请求的参数
[request setTimeoutInterval:15000]; // 请求超时时间
//[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
// 请求结果
NSURLResponse *response;
NSError *error;
NSData *backData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (error) {
NSLog(@"error : %@", [error localizedDescription]);
return nil;
}
NSString *result =[[NSString alloc] initWithData:backData encoding:NSUTF8StringEncoding];
return result;
}
@catch(NSException *ex){
NSLog(@"NSMutableURLRequest请求错误:%@", ex);
@throw ex;
}
}
注意:本文归作者所有,未经作者允许,不得转载