AFN3.0 PATCH请求报错Error Domain=NSURLErrorDomain Code=-1012 "(null)"

本文介绍了一种解决HTTP PATCH请求中出现的错误域=nsurlerrordomain代码=1012的方法。通过更改请求实现方式,使用AFURLSessionManager替代NSURLConnection,并允许不安全的SSL连接来成功发送请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我试图执行一个HTTP PATCH请求,但我不断收到错误域= nsurlerrordomain代码= 1012错误。我的代码:
//封装的请求方法
+ (void)requestMethod:(NSString *)method urlStr:(NSString *)urlStr token:(NSString *)token parma:(NSDictionary *)param success:(void (^)(id))success failure:(void (^)(NSError *))failure {

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:method URLString:urlStr parameters:param error:nil];
    [request setValue:token forHTTPHeaderField:@"Authorization"];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        if (!connectionError) {

            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
            success(dict);
        } else {

            failure(connectionError);
        }
    }];

}

//上传
NSString *dicStr = [self setDictionaryToString:dict];
NSString *urlStr = [NSString stringWithFormat:@"http://123.56.77.171/app/user/user/modifyphone/oldcaptcha?%@", dicStr];
NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *value = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"userToken"]];

[HttpHelper requestMethod:@"PATCH" urlStr:newStr token:value parma:nil success:^(id json) {

        NSLog(@"%@", json);

    } failure:^(NSError *error) {

        NSLog(@"%@", error);
 }];

将请求的参数由字典转化成字符串拼接到网址字符串中


结果/日志,我得到的是:响应代码
Error Domain=NSURLErrorDomain Code=-1012 "(null)" UserInfo={NSErrorFailingURLStringKey=http://123.56.77.171/app/user/user/modifyphone/oldcaptcha, NSUnderlyingError=0x7fd768c882e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1012 "(null)" UserInfo={_kCFURLErrorAuthFailedResponseKey=<CFURLResponse 0x7fd76b08c300 [0x10d2117b0]>{url = http://123.56.77.171/app/user/user/modifyphone/oldcaptcha}}}, NSErrorFailingURLKey=http://123.56.77.171/app/user/user/modifyphone/oldcaptcha}

解决办法将下面的代码替换成

这里写图片描述

NSString *dicStr = [self setDictionaryToString:dict];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *urlStr = [NSString stringWithFormat:@"http://123.56.77.171/app/user/user/modifyphone/oldcaptcha?%@", dicStr];

NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *value = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"userToken"]];

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:method URLString:urlStr parameters:param error:nil];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *value = [NSString stringWithFormat:@"%@", [defaults objectForKey:@"userToken"]];


**AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
//此行代码是重点
[manager.securityPolicy setAllowInvalidCertificates:YES];**

[request setValue:value forHTTPHeaderField:@"Authorization"];

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress *uploadProgress) {


    } completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

            if (!error) {
                success(responseObject);
            } else {
                failure(error);
            }
    }];
    [uploadTask resume];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值