NSURLSession 使用 get 发送参数

2024-02-08

我正在尝试解析来自 php 的信息,但我需要发送一个字典参数,所以我尝试了一些事情......我看到了教程,示例,但我陷入困境,所以我回到了开始:(这是什么好方法这样做吗?)

       func asd(){
    let urlPath = "http://xxxxx.php"

    let url: NSURL = NSURL(string: urlPath)

    let request = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "GET"
    var parm = ["id_xxxx": "900"] as Dictionary


    //I THINK MY PROBLEM IT'S HERE! i dont know how to link parm with session, i try is with session.uploadTaskWithRequest(<#request: NSURLRequest?#>, fromData: <#NSData?#>) but doesn't work

    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
        println("Task completed")
        if(error) {
            // If there is an error in the web request, print it to the console
            println(error.localizedDescription)
        }
        var err: NSError?
        var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
        if(err?) {
            // If there is an error parsing JSON, print it to the console
            println("JSON Error \(err!.localizedDescription)")
        }
        println(jsonResult.debugDescription)
        let results: NSArray = jsonResult["x"] as NSArray
        dispatch_async(dispatch_get_main_queue(), {
            self.tableData = results
            self.OfertaGridViewLista!.reloadData()
            })
        })
    task.resume()
}

Thanks!


GET 数据需要是 url 查询字符串的一部分。某些方法将接受 POST/PUT 请求的参数字典,但如果您使用 GET 方法,这些方法不会将字典添加到 url 中。

如果您希望将 GET 参数保留在字典中以保持整洁或一致性,请考虑向您的项目添加如下方法:

func buildQueryString(fromDictionary parameters: [String:String]) -> String {
    var urlVars:[String] = []
    
    for (k, value) in parameters {
        let value = value as NSString
        if let encodedValue = value.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) {
            urlVars.append(k + "=" + encodedValue)
        }
    }

    return urlVars.isEmpty ? "" : "?" + urlVars.joined(separator: "&")
}

此方法将采用键/值对的字典并返回一个可以附加到 url 的字符串。

例如,如果您的 API 请求允许多种请求方法(GET/POST/等),您只需将此查询字符串附加到 GET 请求的基本 api url 中:

if (request.HTTPMethod == "GET") {
    urlPath += buildQueryString(fromDictionary: parm)
}

如果您仅发出 GET 请求,则无需检查将使用哪种方法来发送数据。

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

NSURLSession 使用 get 发送参数 的相关文章

  • 在 C# 中遍历 ANTLR AST 的教程?

    有人知道在 C 中遍历 ANTLR 生成的 AST 的教程吗 我能找到的最接近的是this https web archive org web 20201019210638 http www manuelabadia com blog Pe
  • 在 Swift 中从 UIScrollView 创建 PDF 文件

    我想从 UIScrollView 的内容创建一个 PDF 文件 func createPdfFromView aView UIView saveToDocumentsWithFileName fileName String let pdfD
  • 作为!与 Swift 中 Xcode 6.3 中的 as 运算符对比

    Xcode 6 3 使 Swift 发生了很大变化 我必须更换每个应用程序中的数十个位置as gt as 为什么 现在有什么规则 在 Swift 1 2 之前 as运算符可用于执行两种不同类型的转换 具体取决于要转换的表达式的类型及其要转换
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • SwiftUI:发送电子邮件

    在正常情况下UIViewController在 Swift 中 我使用此代码发送邮件 let mailComposeViewController configuredMailComposeViewController mailCompose
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 在react中使用map方法渲染JSON API

    我对 JSON 对象 数组和映射方法的语法和结构有困难 我是 React 新手 正处于学习的初始阶段 这是我粘贴在下面的 JSON 文件代码 cloud Asia availability last15Min 100 last24Hour
  • Apple Mach-O 链接器错误(静态,不是 ld)

    我最近遇到了 Apple Mach O 链接器错误 大多数指南建议将 构建设置 中的位码更改为 否 但它仅适用于 ld 错误 这与我的不同 我会提供截图 请帮忙修复bug pod HandySwift 导致了错误的出现 这是它的 Githu
  • 无法在 ios 应用程序中通过 googlecast 正确投射视频

    我正在开发一个基于 AVPlayer 的自定义视频播放器项目 尝试整合谷歌演员 我已经根据谷歌图进行了集成 https codelabs developers google com codelabs cast videos ios http
  • 如何使用 alamofire 通过基本身份验证上传图像?

    我正在尝试使用 alamofire 4 7 1 和此代码上传图像 但说实话 我怀疑我没有编写正确的代码来上传图像 func uploadDefect defectRemark String defectLocation String def
  • 从未调用过交互式委托方法

    我想在 ViewController 1 和 NavigationViewController 2 之间进行交互式转换 NavigationController 通过按钮调用 因此呈现时没有交互转换 它可以通过按钮或 UIPanGestur
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • 使用 Boost::Spirit 解析 time_period 表达式

    我需要使用 Boost Spirit 解析以下 EBNF 表达式 period date part time part date part time part time part hours minutes seconds date par
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • 我的 UICollectionView 无法使用 Swift 平滑滚动

    我有一个CollectionView它使单元出队取决于message类型 例如 文本 图像 我遇到的问题是当我向上 向下滚动时滚动确实很不稳定 因此用户体验不是很好 这仅在第一次加载单元格时发生 之后滚动就会平滑 我有什么想法可以解决这个问
  • 使用 Perl 获取 值

    因此 我有一个报告工具 可以在 HTML 文件中输出作业调度统计信息 并且我希望使用 Perl 来使用这些数据 但我不知道如何单步浏览 HTML 表 我知道如何使用 jQuery 来做到这一点 find tr each function v
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用

随机推荐

  • 如何在 Matplotlib 中为文本添加动画?

    我正在尝试为 Matplotlib 图中的文本框设置动画 但似乎无法使其工作 有谁知道如何正确执行此操作 下面是一个例子 from matplotlib import animation import matplotlib pyplot a
  • 从网络摄像头录制视频流并将 blob 上传到服务器

    所以我有一个网站可以记录来自用户网络摄像头的视频流并将其转换为 blob 使用getUserMedia 我现在想将此 blob 发送到服务器 以便可以保存和处理视频 我在通过 ajax 发送 blob 文件时遇到问题 我尝试过使用 form
  • 如何使用 AJAX 更新选择菜单而不使用表单内的

    我正在使用 ajax 调用来更新选择菜单 ajax 调用通过从不同的 php 文件运行来将列表放入我的选择菜单中 这是 JS 插入片段 if req status 200 document getElementById countydiv
  • Pyplot:共享轴并且子图之间没有空间

    这与 或者更确切地说是后续 有关matplotlib 中共享轴方形子图的新 pythonic 风格 https stackoverflow com questions 13629994 new pythonic style for shar
  • 如何对使用层方法的 lambda 逻辑进行单元测试?

    您好 我有 AWS Lambda 我想为其添加一个层 我希望能够只测试 lambda 的单个方法 然而 其中许多都使用层逻辑 因此在我看来这并不容易 做到这一点的最佳方法是什么 一种方法是封装层 主机位于某处并将其用作依赖项 既然如此 为什
  • Delphi XE - TRibbon 操作始终将焦点发送到 MainForm

    当我将 TRibbon 控件放置在不是应用程序 MainForm 的窗体上时 TRibbon 的操作 即剪切 粘贴 将始终在执行操作后将焦点返回到 MainForm 即使保存 TRibbon 的 TForm 不是 MainForm 的子级
  • “less”命令显示输出所花费的时间

    我有一个可以产生大量输出的脚本 脚本在该点暂停几秒钟T 现在我正在使用less命令来分析脚本的输出 所以我执行 script less 我让它运行足够的时间 以便脚本完成执行 现在 我按 Pg Down 键查看 less 命令的输出 令人惊
  • 使用 pythonpyral 将标签添加到 Rally 缺陷

    我正在尝试使用pyral python 包创建Rally 缺陷 需要添加标签 TestTag2 有没有办法在创建缺陷时添加标签 我正在尝试在创建缺陷后添加标签 但出现以下错误 info Workspace workspace 123 Pro
  • 如何在 ASP.NET Core 中获取 HttpContext.Current.Session?

    我需要将 MVC 项目迁移到 net Core 我知道它已从 ASP net Core 中删除了 System Web 我需要转换 HttpContext Current Session 名称 在 ASP NET Core 中为 Null
  • 访问 Firefox 中的文件下载对话框

    是否有任何类型的 API 可以让我在 Firefox 中操作文件下载对话框 我想访问用户执行某些操作时出现的内容 而不是自己启动的内容 我想做的是从 Selenium 访问这个对话框 我也不确定 Selenium 特权模式 是否足以访问 c
  • MSB3411 无法加载 Visual C++ 组件

    我有 MS Visual Studio 2012 Ultimate 操作系统是 Windows 7 并且安装了 nodeJs 我想使用 npm 安装 socket io 但出现以下错误 C Users NEW gt npm install
  • 哪些标准 C++ 类不能在 C++ 中重新实现?

    我正在查看 C 0x 的计划并发现std initializer list用于在用户类中实现初始值设定项列表 此类无法在 C 中实现 不使用自身 或者使用一些 编译器魔法 如果可以的话 就不需要它了 因为无论您使用什么技术来实现initia
  • 如何屏蔽图片的 Facebook 图形 api URL?

    我正在尝试在我的网站上显示 Facebook 个人资料图片 但不想泄露源中人员的 Facebook ID 例如 这个网址 http graph facebook com 4 picture http graph facebook com 4
  • 具有 MySQL 故障转移功能的 Hibernate Web 应用程序

    我开发了一个 Java Web 应用程序 使用 Hibernate 3 3 2 作为持久性框架 使用 Apache Tomcat 7 0 27 作为服务器 该应用程序已成功设置为使用 MySQL 5 5 复制服务器 1 个主服务器 1 个从
  • 如何将 vtkSphere 保存到 VTK 文件?

    我正在尝试将多个球体保存到一个文件中 以便稍后使用 ParaView 进行可视化 我拥有的是一个文本文件 其中包含有关每个球体的位置和形状 半径 的信息 我正在使用 Python 和 VTK 构建一个文件来可视化 ParaView 中的数据
  • 使用 OR 工具在 python 中进行约束优化:如何强制执行多级约束?

    我有一个优化问题 我有一个 BoolVar 对象列表的列表 所以像这样 BoolVar1 BoolVar2 BoolVar3 BoolVar4 BoolVar5 BoolVar6 我需要评估以下内容 BoolVar1 BoolVar2 Bo
  • 关于 C# 的 AOP 的建议 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 MySQL DB 完成 Java 桌面应用程序后如何创建安装程序?

    我已经用 mySQL 数据库编写了一个 Java 桌面应用程序 我想让应用程序在netbeans之外运行并让它安装在其他计算机上 我知道如何构建项目并创建可运行的 jar 文件 但这需要我将数据库本身导出到我希望应用程序运行的另一台计算机
  • apache 全局基本身份验证

    我有 apache Web 服务器和几个虚拟主机 我希望它们都支持基本授权 AuthType Basic 但是 Auth 指令似乎仅适用于
  • NSURLSession 使用 get 发送参数

    我正在尝试解析来自 php 的信息 但我需要发送一个字典参数 所以我尝试了一些事情 我看到了教程 示例 但我陷入困境 所以我回到了开始 这是什么好方法这样做吗 func asd let urlPath http xxxxx php let