不多说,直接进入主题:
GET方法:
-(void)getInfo{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
HHTProfileShippingAddressFetchReq *req=[[HHTProfileShippingAddressFetchReq alloc]init];
req.userID=@"17";
NSDictionary *dicReq=[PrintObject getObjectData:req];
[manager GET:@"http://localhost:8000/profile/shippingaddress/fetch" parameters:dicReq success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
方法中需要注意的是:
1.这个方法是afn2.0之后推荐使用的新方法
2.get请求的参数是拼接在url后面的,本方法对此做了封装,只需要把需要的参数放到一个NSDictionary里面就行
3.我这里对对象进行的处理,直接将对象通过PrintObject类的getObjectData:方法将对象直接转换为NSDictionary对象
4.方法中的参数比较简单,第一个是请求的地址,第二个是请求的参数,GET结果在block里面进行
POST方法:我做了个登陆功能为例
-(void)login{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//请求体对象
HHTAccountLoginReq *req=[[HHTAccountLoginReq alloc]init];
req.userName=@"senyang";
req.cryptPasswd=@"ii";
//对象转为Dictioniary
NSDictionary *parameters = [PrintObject getObjectData:req];
//执行post
[manager POST:@"http://localhost:8000/account/login" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
post需要注意的地方:
manager.requestSerializer = [AFJSONRequestSerializer serializer];
2.参数就没的说了,跟GET方法是一样的