接口格式如下:xxxxxxxxx/IMUser/getcontact?getcontact={"phonelist":[{"phone":"15314695439"}],"userid":"9"} 其中{"phonelist":[{"phone":"15314695439"}],"userid":"9"}为JSON格式
我是用ASIHttpRequest来请求数据的,方法如下:
NSMutableDictionary *_muDic = [[NSMutableDictionary alloc] init];
NSMutableArray *dataArray=[[NSMutableArray alloc]init];
for (int i=0; i<self.contacts.count; i++) {
THContact *thentity=[self.contacts objectAtIndex:i];
if (thentity.phone!=nil) {
NSMutableDictionary *dic=[[NSMutableDictionary alloc]init];
[dic setObject:thentity.phone forKey:@"phone"];
[dataArray addObject:dic]; //此数据中存放手机号
}
}
NSMutableDictionary *dataDic=[[NSMutableDictionary alloc]init];//此字典存放手机号列表和用户ID
[dataDic setObject:dataArray forKey:@"phonelist"];
[dataDic setObject:[YBXUserProfile sharedInstance].ownerId forKey:@"userid"];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dataDic options:NSJSONWritingPrettyPrinted error:&error];//这一句就是把NSDictionary转换成JSON格式的方法,JSON格式的数据存储在NSData类型的变量中。
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];//转换成UTF8编码
[_muDic setObject:jsonString forKey:@"getcontact"];
[commonManagement sendCommonEventToServer:_muDic interface:@"getcontact" InterfaceType:@"IMUser/getcontact"];//将存放数据的字典通过已封装好的方法
向服务器发送请求
目前看来到这就应该可以成功请求数据了,但实际不是,怎么都请求不到数据,NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];//转换成UTF8编码 此处编码过后,jsonString 里的数据被换行了,而地址栏中不能换行,于是我想了很久,找了很久,终于想到了将jsonString 中的换行符替换掉,代码如下:
NSString *text = [[sendData valueForKey:sendKey] stringByReplacingOccurrencesOfString:@"\n" withString:@""];//这是在进行MD5加密的时候做的处理,问题到此终于解决了。