MacOS:Objective-c 使用NSURLSession设置代理时的弹窗问题

本文解决了一个OC编程中使用代理服务器发送网络请求时出现的问题。通过为请求添加正确的Proxy-Authorization头并设置代理服务器的账号密码,成功避免了弹出代理验证窗口。

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

问题:
oc编程中,在发送网络请求时,使用代理服务器作为客户端,设置代理服务器后,客户端发送请求,仍会弹出代理验证窗口,如下图
在这里插入图片描述

解决:
查阅网站,在创建request请求时,为request添加Authorization请求头,并填入代理服务器账号密码

  NSURL *url_object = [NSURL URLWithString:self.url];
  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url_object];
    NSString *username = @"user";
    NSString *password = @"password";
    NSString *authString = [NSString stringWithFormat:@"%@:%@",
                            username,
                            password];
    // 2 - convert authString to an NSData instance
    NSData *authData = [authString dataUsingEncoding:NSUTF8StringEncoding];

    // 3 - build the header string with base64 encoded data
    NSString *authHeader = [NSString stringWithFormat: @"Basic %@",
                            [authData base64EncodedStringWithOptions:0]];
    
    [request setValue:authHeader forHTTPHeaderField:@"Authorization"];

仍然会弹出认证窗口,继续查阅网站,将Authorization改为Proxy-Authorization,可以解决问题

    [request setValue:authHeader forHTTPHeaderField:@"Proxy-Authorization"];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Michael.Scofield

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值