2017-04-19 6 views
0

私のAFNetworkingリクエストでは、 "key": "\ u0001"レスポンスが期待されますが、 "key"が得られません。私は複数のスタックの質問に従うことを試みたが、私のために働かなかった。"key": " u0001"のAFNetworkingレスポンス

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setTimeoutInterval:15]; 
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"]; 
manager.securityPolicy.allowInvalidCertificates = true; 
manager.securityPolicy.validatesDomainName = false; 
[manger.requestSerializer setValue:@"Application/json" forHTTPHeaderField:@"Accept"]; 
manger.responseSerializer = [AFHTTPResponseSerializer serializer]; 
[manger GET:url parameters:nil progress:nil success:^(NSURLSessionTask *operation, id responseObject){ 
     NSLog(@"Response REST AP loaded %@", responseObject); 
     NSMutableDictionary *response = responseObject; 
} 

私はコード

NSString* newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 

のこの行を書いたときには、文字列の形式で働いていた。しかし、今、私はNSDictionaryのにそれを作る方法がわからない、私はまた、NSDictionaryの

にこれを変換してみました
NSData *webData = [newStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:webData options:0 error:&error]; 

これは機能しませんでした。

誰も私の予想される出力を達成するための適切なステップを導くことができます。

はありがとう、私はあなたが例えば、responseObjectの種類を確認すべきであることを示唆している

答えて

0

- (id) dataObject:(NSData*)data 
{ 
    return [ NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
} 
+0

私は、この「キー」になっていないです 私の質問、NSDictionaryのような応答を取得しています:私は – niravdesai21

+0

はあなたがテストしてみてください明らかだ「」 希望:「\のU0001を」私は、この「キー」を取得していますinsted ChromeのPostmanプラグインからの応答ですか?ディクショナリが空の値の場合は、バックエンドに連絡してください。 –

+0

この値は "key"と期待されます: "\ u0001"私は郵便配達でもテストしました。それはそこに来るが、私はAFNetworking経由でここに受信していない。 – niravdesai21

0
NSDictionary* responseDict = [self dataObject:responseData]; 

使用をしてから呼び出します。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setTimeoutInterval:15]; 
manager.securityPolicy.allowInvalidCertificates = true; 
manager.securityPolicy.validatesDomainName = false; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 

[manager GET:requestURL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
NSLog(@"Response REST AP loaded %@", responseObject); 
} 
+0

"key"はまだ動作しませんでした: "\ u0001"は来ませんでした – niravdesai21

+0

"\ u0001"はiosの特殊文字のコードだと思います。 –

+0

その符号なし文字は特殊文字ではありません – niravdesai21

0

別の方法を試してみて、このメソッドをこの

  if ([[responseObject class] isSubclassOfClass:[NSDictionary class]]) { 
      // return responseObject because this is a dictionary 
      } 
      else { 
      NSError *error = nil; 
      NSString* newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 
      NSData *webData = [newStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
      return [NSJSONSerialization JSONObjectWithData:webData options:0 error:&error]; 
      } 
+0

この問題はちょうど私がこれを使用するときのように応答しています NSString * newStr = [[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding]; 私は適切な応答を得ますが、それは文字列であり、私はdictinaryでそれを必要とします – niravdesai21

関連する問題