【问题标题】:AFHTTPSessionManager issueAFHTTPSessionManager 问题
【发布时间】:2016-04-05 05:03:58
【问题描述】:

我正在使用 Afnetworking 框架,但每次我点击 Web 服务时,响应总是如下-

错误域=com.alamofire.error.serialization.response Code=-1011 "请求失败:未授权 (401)" UserInfo={com.alamofire.serialization.response.error.response

我已经使用了下面的代码谁能帮帮我-

 NSString * finalUlr =  [kMainUrl stringByAppendingString:url];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:@"1f76f057-1809-0bfd-5b53-f2f6c2d3ab81" forHTTPHeaderField:@"postman-token"];
[manager.requestSerializer setValue:@"qW9Bf_-RxXFz8mtxDqUYYzBN2V9N6he_tOTbSgJskVA" forHTTPHeaderField:@"x-csrf-token"];
[manager POST:finalUlr parameters:Patameters progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: Success");
    completionBlock(YES,responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
    completionBlock(NO,nil);
}];

【问题讨论】:

  • 您应该尝试将请求序列化程序添加到您的 AFHTTPRequestOperationManager。 AFJSONRequestSerializer *jsonRequestSerializer = [AFJSONRequestSerializer 序列化器]; [self.requestOperationManager setRequestSerializer:jsonRequestSerializer];

标签: ios objective-c iphone ios9 afnetworking-2


【解决方案1】:

试试这个

NSString * finalUlr =  [kMainUrl stringByAppendingString:url];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:finalUlr] cachePolicy:NSURLRequestReloadIgnoringCacheData  timeoutInterval:10];

    [request setHTTPMethod:GET_METHOD]; // or POST_METHOD
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"1f76f057-1809-0bfd-5b53-f2f6c2d3ab81" forHTTPHeaderField:@"postman-token"];
    [request setValue:@"qW9Bf_-RxXFz8mtxDqUYYzBN2V9N6he_tOTbSgJskVA" forHTTPHeaderField:@"x-csrf-token"];

    AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    op.responseSerializer = [AFJSONResponseSerializer serializer];
    [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         if (responseObject)
         {

         }
         else
         {
         }
     } failure:^(AFHTTPRequestOperation *operation, NSError *error){
     }];

    [op start];

希望对你有帮助

【讨论】:

  • AFHTTPRequestOperation 不适用于我正在使用 AFHTTPSessionManager 的代码。
  • 使用 AFHTTPRequestOperation 下载 AFNetworking : - dropbox.com/s/fpxgloqt665tvv1/AFNtetworking.zip?dl=0
  • 我也遇到了同样的问题。 AFNetworking 不再支持 AFHTTPRequestOperation 已弃用。这是一个糟糕的解决方案
【解决方案2】:

希望它对你有用..

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];


[manager POST:str6 parameters:@{} progress:nil success:^(NSURLSessionTask *task , id responseObject)
 {

     NSLog(@"%@",responseObject);

 }failure:^(NSURLSessionTask *operation ,NSError *error)
 {

 }];

注意:-

1) 在 str6 中使用您的网址。

2)在参数中使用你的参数。

你可以像这样传递参数...

NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:strEmail,@"email",strPassword,@"password",uniqueIdentifier,@"session_id", nil];

这里 strEmail 是你的值等等..

@"email" 是你的密钥等等..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多