![](/img/trans.png)
[英]how can we abstract json data from SOAP web service response and put it into a dictionary in iOS
[英]why Json Dictionary is Giving the response in nsdata(Bytes) always.How can i Get the Dictionary from web service
在此,我將發送標頭並添加參數以訪問 Web 服務。 問題是在點擊 Web 服務控制器后有時不會進入成功部分。 如果它正確命中,那么它將以字節為單位返回結果。 這是我的代碼::
AFHTTPRequestOperationManager *manager =[AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setTimeoutInterval:300];
manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
//giving the correct format to json
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
token=[parameters valueForKey:@"token"];
if(token == nil || [token isEqual:[NSNull null]]){
token=[[[NSUserDefaults standardUserDefaults]dictionaryForKey:@"LoginWebData"]valueForKey:@"token"];
}else{
token=[parameters valueForKey:@"token"];
}
//set the header do http request
[manager.requestSerializer setValue:[NSString stringWithFormat:@"%@",token]forHTTPHeaderField:@"token"];
[manager POST:[BaseURLString stringByAppendingString:methodName] parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"JSON: %@", responseObject);
UserDict=responseObject;
[self.TableviwSideMenu reloadData];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Error: %@", [error localizedDescription]);
[self showAlert: [error localizedDescription]];
}];
AFNetworking 將為您進行序列化,而 responseObject 很可能是 NSArray 或 NSDictionary 對象,就像
[manager POST:[BaseURLString stringByAppendingString:methodName] parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"JSON: %@", responseObject);
if ([responseObject isKindOfClass:[NSArray class]]) {
NSArray *responseArray = responseObject;
UserDict=responseArray;
/* do something with responseArray */
} else if ([responseObject isKindOfClass:[NSDictionary class]]) {
NSDictionary *responseDict = responseObject;
UserDict=responseDict;
/* do something with responseDict */
}
if (UserDict.count>0)
[self.TableviwSideMenu reloadData];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Error: %@", [error localizedDescription]);
[self showAlert: [error localizedDescription]];
}];
AFNetworking 框架及其委托將處理一切。 您將在 NSDictionary 中獲得 responseObject。
-(void)Request{
[self.Request_coursecomplete setRequestMethod:@"POST"];
self.Request_coursecomplete = [ASIFormDataRequest requestWithURL:sendSMSURL];
self.Request_coursecomplete.delegate = self;
//will try second time
[self.Request_coursecomplete setNumberOfTimesToRetryOnTimeout:2];
[self.Request_coursecomplete setShouldContinueWhenAppEntersBackground:YES];
NSTimeInterval timeOutSecs = 60000;
[self.Request_coursecomplete setTimeOutSeconds:timeOutSecs];
[self.Request_coursecomplete startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSString *receivedString = [request responseString];
NSLog(@"json string: %@",receivedString);
NSDictionary *d = [receivedString JSONValue];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.