如何將JSON資料通過Get方法獲取資料
介面格式如下:xxxxxxxxx/IMUser/getcontact?getcontact={"phonelist":[{"phone":"15314695439"}],"userid":"9"} 其中{"phonelist":[{"phone":"15314695439"}],"userid":"9"}為JSON格式
我是用ASIHttpRequest來請求資料的,方法如下:
NSMutableDictionary *_muDic = [[NSMutableDictionaryalloc] init];
NSMutableArray *dataArray=[[NSMutableArrayalloc
for (int i=0; i<self.contacts.count; i++) {
THContact *thentity=[self.contacts objectAtIndex:i];
if (thentity.phone!=nil) {
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:thentity.phone forKey:@"phone"];
[dataArray
addObject
}
}
NSMutableDictionary *dataDic=[[NSMutableDictionaryalloc]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];//這一句就是把
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];//轉換成UTF8編碼
[_muDic setObject:jsonString forKey:@"getcontact"];
[commonManagementsendCommonEventToServer:_muDic interface:@"getcontact"InterfaceType:@"IMUser/getcontact"];//將存放資料的字典通過已封裝好的方法
向伺服器傳送請求
目前看來到這就應該可以成功請求資料了,但實際不是,怎麼都請求不到資料,NSString *jsonString = [[NSStringalloc] initWithData:jsonData encoding:NSUTF8StringEncoding];//轉換成UTF8編碼 此處編碼過後,jsonString 裡的資料被換行了,而位址列中不能換行,於是我想了很久,找了很久,終於想到了將jsonString 中的換行符替換掉,程式碼如下:
NSString *text = [[sendData valueForKey:sendKey] stringByReplacingOccurrencesOfString:@"\n" withString:@""];//這是在進行MD5加密的時候做的處理,問題到此終於解決了。