AFNetworking 3.0 xml parisng 获取 nsinline 数据中的响应

AFNetworking 3.0 xml parisng getting response in nsinline data

提问人:Kiran Bhoraniya 提问时间:11/18/2016 最后编辑:Kiran Bhoraniya 更新时间:12/6/2016 访问量:597

问:

我正在使用 AFnetworking 3.0 进行 XML 解析。 下面是我的代码。

 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:Username, @"username", pass, @"password",device,@"device",token,@"devicetoken", nil];

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.requestSerializer setValue:@"application/soap+xml" forHTTPHeaderField:@"Content-Type"];


NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:[NSString stringWithFormat:@"https://xyz.or/webservice.php"] parameters:dict error:nil];

req.timeoutInterval= [[[NSUserDefaults standardUserDefaults] valueForKey:@"timeoutInterval"] longValue];
[req setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[req setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[req setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];


[[manager dataTaskWithRequest:req completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

    if (!error) {

        NSLog(@"Reply JSON: %@", responseObject);

        if ([responseObject isKindOfClass:[NSDictionary class]]) {
            //blah blah
        }
    } else {
        NSLog(@"Error: %@, %@, %@", error, response, responseObject);
    }
}] resume];

现在我在 nsinline 数据中得到响应。

JSON: <3c3f786d 6c207665 7273696f 6e3d2231 2e302220 656e636f 64696e67 3d227574 662d3822 3f3e3c41 72726179 3e3c4469 633e3c49 643e202d 31203c2f 49643e3c 2f446963 3e3c2f41 72726179 3e>

谁能告诉我我应该怎么做才能获得 da

Objective-C iPhone XML解析 AFNiting-3

评论

1赞 Pavel Rudkouski 11/18/2016
你有 manager.responseSerializer httpserializer,所以如果你确定响应是 json,你可以设置 jsonresponseserializer
1赞 Larme 11/18/2016
manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.requestSerializer = [AFHTTPRequestSerializer serializer]; manager.responseSerializer = [AFHTTPResponseSerializer serializer];这些台词是什么意思?只应该考虑最后一个,不是吗?你谈到了 XML(在你的问题中),但你所有的代码似乎都与 JSON 有关。

答:

0赞 KKRocks 12/6/2016 #1

您需要更改此行

manager.requestSerializer = [AFJSONRequestSerializer serializer];// remove this if no use
manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // remove this if no use

改变

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

manager.responseSerializer = [AFJSONResponseSerializer serializer];