如何以编程方式将代理添加到 NSURLSession

2024-01-08

查看文档NSURLSession and NSURLSessionConfiguration,我的印象是我应该使用如下所示的字典来配置它:

    // Create a dictionary to describe the proxy 
    NSDictionary *proxyDict = @{
        (NSString *)kCFProxyHostNameKey   : @"myProxyHost.com",
        (NSString *)kCFProxyPortNumberKey : @"12345",
        (NSString *)kCFProxyTypeKey       : (NSString*)kCFProxyTypeHTTP
    };

    // Create a configuration that uses the dictionary
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    [configuration setConnectionProxyDictionary:proxyDict];

然而,来自的请求NSURLSession使用此配置创建的直接连接。


事实证明,您想要的字典键是 Stream 变体,它们是解析为“HTTPProxy”等的键:

NSString* proxyHost = @"myProxyHost.com";
NSNumber* proxyPort = [NSNumber numberWithInt: 12345];

// Create an NSURLSessionConfiguration that uses the proxy
NSDictionary *proxyDict = @{
    @"HTTPEnable"  : [NSNumber numberWithInt:1],
    (NSString *)kCFStreamPropertyHTTPProxyHost  : proxyHost,
    (NSString *)kCFStreamPropertyHTTPProxyPort  : proxyPort,

    @"HTTPSEnable" : [NSNumber numberWithInt:1],
    (NSString *)kCFStreamPropertyHTTPSProxyHost : proxyHost,
    (NSString *)kCFStreamPropertyHTTPSProxyPort : proxyPort,
};

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration];
configuration.connectionProxyDictionary = proxyDict;

// Create a NSURLSession with our proxy aware configuration
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue mainQueue]];

// Form the request
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com?2"]];

// Dispatch the request on our custom configured session
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:
                              ^(NSData *data, NSURLResponse *response, NSError *error) {
                                  NSLog(@"NSURLSession got the response [%@]", response);
                                  NSLog(@"NSURLSession got the data [%@]", data);
                              }];

NSLog(@"Lets fire up the task!");
[task resume];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式将代理添加到 NSURLSession 的相关文章

  • 如何让 iPhone 屏幕变暗

    我的 iPhone 屏幕上有一个刷新按钮 可以刷新当前视图中的表格 屏幕刷新得很漂亮 但是有没有办法让屏幕变暗 然后在表格刷新后再次变亮 您可以在要调暗的视图上放置一个带有黑色背景的非不透明视图 默认情况下 其 alpha 值为 0 因此是
  • UIBarButtonItem 按下后更改字体,在外观代理中指定

    我设置了UIBarButtonItem标题字体通过appearanceAppDelegate 中的代理 UIBarButtonItem appearance setTitleTextAttributes NSDictionary dicti
  • 在 swift ios 中播放远程 mp3 文件需要花费大量时间

    我有麻烦了 我想在我的应用程序中播放远程 mp3 文件 但 mp3 文件需要很长时间 大约 5 6 分钟 来播放 为什么 任何人都可以建议我应该做什么 import UIKit import AVFoundation class TestV
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • 如何从 Xcode 4.5 卸载 iOS 5.0 模拟器

    我已经安装了 Xcode 4 5 由于我编写应用程序是为了好玩 我不打算支持旧版 iOS 版本 并且为了节省 500 GB iMac 上的空间 是否有办法删除它 尝试从 Xcode 包中支持的平台中删除 iPhone iPhoneSimul
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 通过 HTTPS 的隧道

    在我的工作场所 流量拦截器 防火墙变得越来越糟糕 我无法通过端口 22 连接到我的家用计算机 并且缺乏 ssh 访问权限让我感到难过 我以前可以通过将 SSH 移动到端口 5050 来使用它 但我认为最近的一些过滤器现在将此流量视为 IM
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲

随机推荐

  • Flutter windows:获取flutter应用程序的win32窗口句柄

    如果我没记错的话 flutter 目前是使用 win32 库在 Windows 上实现的 尽管一些文档页面指出这可能会更改为 NET 或其他一些框架 因为 flutter windows 处于非常早期的开发阶段 并且可能随时更改 时间而不保
  • 如何在hive中添加jar文件

    我正在尝试使用 hive contrib 0 10 0 jar 在 hive 中添加添加 JAR hive contrib 0 10 0 jar命令但它总是说 hive contrib 0 10 0 jar 不存在 我现在使用的是 HDP
  • vim:更改默认粘贴寄存器

    当我在 vim 中拉取或删除文本并运行时 reg 我看到它要进去注册 但是当我粘贴时 我看到 E353 寄存器中没有内容 我从中得到的是 vim 正在拉动 但粘贴自 set clipboard clipboard echo version
  • 带进度对话框的 Android 下载管理器

    我已经使用 Android 下载管理器编写了一个 Android 应用程序 并且尝试使用下面的代码显示下载进度 myTimer schedule new TimerTask public void run try DownloadManag
  • 如果字段是实例成员,则回调处理程序会出现异常

    希望有人帮助我解决这个问题 If CallbackHandler proxy是静态的 那么一切正常 using System using System ServiceModel namespace ConsoleApplication5 D
  • Boost heap 设置用户定义的比较函数

    最近 我发现 Boost Heap 在我的项目中非常有用 但我找不到任何示例代码来显示如何设置任意比较函数 include boost heap fibonacci heap hpp using boost heap fibonacci h
  • 如何使用 SOA 架构实现松耦合

    我最近做了很多关于 SOA 和 ESB 等的研究 我现在正在工作中重新设计一些遗留系统 并希望使用比目前更多的 SOA 架构来构建它 我们在大约 5 个网站中使用这些服务 而我们的遗留系统目前面临的最大问题之一是 几乎每次我们进行错误修复或
  • 如何在具有相同端口但具有不同主机头的 IIS 服务器中托管多个站点并公开访问它

    我正在尝试在 IIS 服务器中托管多个网站 我可以使用不同的端口托管它 但我不想为不同的网站使用不同的端口 我也尝试使用主机标头 但我只能在本地访问这些标头 我想公开 外部访问这些标头 我怎样才能做到这一点 我还配置了 DNS 但我无法公开
  • 如何在 ASP.NET Web 应用程序中打开 SectionGroup?

    我有一个小型 ASP NET Web 应用程序托管在集成测试中 在 NUnit 中执行 我的产品代码通常可以从 web config 或 app config 文件中找到配置数据 但由于某种原因 在托管 ASP NET 时 我似乎得到了一个
  • flex-box:先收缩再包裹

    我有一个包含多个列的布局 其中一些是固定的 另一些则根据需要进行拉伸 因此 我使用弹性盒 此外 我想要并且需要使用 flex wrap 结构是这样的 div class row style display flex div class co
  • Xcode 7.3 缺少私有框架

    我最近将 Xcode 升级到了 7 3 版本 当我编译现有项目时 我收到此错误消息 directory not found for option F Applications Xcode app Contents Developer Pla
  • 基于类的视图“没有属性.as_view()”错误

    我正在跟进本教程 http code tutsplus com tutorials beginners guide to the django rest framework cms 19786 尝试为我的API制作一个Products ta
  • 为什么 grep 如此慢并且使用 -w (--word-regexp) 标志占用大量内存?

    我在一个文件和一个数据文件 大小约为 3 2Gb 中有一个 id 列表 我想提取数据文件中包含 id 的行以及下一行 我做了以下事情 grep A1 Ff file ids file data grep v gt output data 这
  • 加密 app.config 文件

    我有一个 app config 文件 需要与我的应用程序一起分发 它是由于我添加的对 ASMX Web 服务的服务引用而创建的 如果这个文件被修改 查看 这并不是什么大问题 但我仍然希望确保它的安全 我已经检查了配置的哈希值并确保其有效 但
  • PHP 还是 Python 进行图像处理?

    我正在编写一个图像处理应用程序 我只是想知道哪种编程语言最适合 Python 或 PHP 这个过程是基于系统的 而不是基于网络的 所以我只是想Python是否可以提供更多帮助 让我知道你的想法 Python 有类似的东西SciPy http
  • WebView的LOAD_NO_CACHE设置仍然将文件保存到磁盘吗?

    尽管使用webview getSettings setCacheMode WebSettings LOAD NO CACHE 时 WebView 仍然将 MB 的文件保存到缓存中 有没有办法真正禁用缓存 Thanks 似乎没有什么可以完全禁
  • 如何直接将ASP.NET MVC1升级到MVC3?

    我有一个 ASP NET MVC1 项目 想将其直接升级到 MVC3 我假设有两条路 直接从1升级到3 升级到 2 然后第二次升级到 3 最常走的路是哪条 如果您正在使用ASP NET项目升级工具 http aspnet codeplex
  • 从 PostgreSQL 函数生成 HTML

    谁能帮我这个 我有一个任务是编写一个函数 它将根据 PostgreSQL plpgsql 语言 中给定的表名生成 HTML 表 我已经写了这个 但它离我的需要还很远 它会为我给出的列生成一个表 目前只有一个 但我只需要给表一个名称 创建或替
  • Vue:在 div 单击时,转到数据中定义的 url

    我在数组中有这种对象 name name1 url http url 1 tld name name2 url http url 2 tld 单击 div 时 我想要将 window location href 指向url 但我似乎无法从数
  • 如何以编程方式将代理添加到 NSURLSession

    查看文档NSURLSession and NSURLSessionConfiguration 我的印象是我应该使用如下所示的字典来配置它 Create a dictionary to describe the proxy NSDiction