如何使用 NSURLSession 和 Delegate 方法连接到 Web 服务?

2024-01-11

我正在尝试连接 iOS 中的网络服务,但遇到了很多问题。我在这里找到了一个练习网络服务 -http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit

到目前为止我已经写了这段代码

    let soapMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
    "<soap:Body>\n"
    "<CelsiusToFahrenheit xmlns=\"http://www.w3schools.com/webservices/\">\n"
    "<Celsius>50</Celsius>\n"
    "</CelsiusToFahrenheit>\n"
    "</soap:Body>\n"
    "</soap:Envelope>\n"

    let url = NSURL(string: "http://w3schools.com/webservices/tempconvert.asmx")!

    var request = NSMutableURLRequest(URL: url)

    let messageLength = "\(soapMessage.utf16Count)"
    NSLog("\(messageLength)")
    request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
    request.addValue("http://www.w3schools.com/webservices/CelsiusToFahrenheit", forHTTPHeaderField: "SOAPAction")
    request.addValue(messageLength, forHTTPHeaderField: "Content-Length")
    request.HTTPMethod = "POST"
    request.HTTPBody = soapMessage.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)

    var urlSession: NSURLSession = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: self, delegateQueue: NSOperationQueue.mainQueue())

它可以连接,但我的响应返回为 text/html 而不是 text/xml。我的问题是为什么它返回错误?我还使用 NSURLSessionDataTask 或 NSURLSessionDownloadTask 吗?


对于你的情况,我认为它是 NSURLSessionDataTask。基于这个网站:http://www.kaleidosblog.com/nsurlsession-in-swift-get-and-post-data http://www.kaleidosblog.com/nsurlsession-in-swift-get-and-post-data

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

如何使用 NSURLSession 和 Delegate 方法连接到 Web 服务? 的相关文章

  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 如何替换已弃用的方法dispatch_get_current_queue()? [复制]

    这个问题在这里已经有答案了 我正在 iOS 5 中使用 xmppframework 开发一个聊天应用程序 它工作得很好 但我将 Xcode 更新到 4 5 1 将 iOS 5 更新到 iOS 6 将 Mac OS 更新到 10 7 5 但由
  • 在 Cocoa OS X AVPlayer 中播放 HLS (m3u8) - Swift

    基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 HLS Live Stream 我对这门语言比较陌生 所以基本上掌握了一些示例代码 http qiita com ono matope items 23d
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • REST Web 服务 WSDL? [复制]

    这个问题在这里已经有答案了 我正在实现一个 Web 服务 并且已经实现了 REST 和 SOAP 版本 看看哪个版本适合我的需求 我决定选择 REST 因为它很简单 而且我可能会开发一个 iPhone 应用程序来使用它 我的问题很简单 是否
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话

随机推荐

  • Node.js:高效读取一系列行

    我目前正在使用 Node js 并且想知道如何从大型文本文件中读取一系列行 一个明显的解决方案如下所示 var fs require fs fs readFile file function err data var lines data
  • Javascript 数字和货币本地化 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在 JavaScript 中遇到了数字和货币本地化问题 我需要的是一个方便的library为了那个原
  • Spark BlockManager 在本地主机上运行

    我有一个简单的脚本文件 我试图在模仿教程的 Spark Shell 中执行here https spark apache org examples html import org apache spark SparkConf import
  • 为什么要用“FragmentDefinition”包装“Dialog”?

    UI5 对话框可以直接定义为Dialog
  • Gmail、Yahoo、Facebook、Twitter 联系人 PHP 中的导入器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iOS:在后台更新媒体信息

    我目前在我的应用程序中使用 MPNowPlayingInfoCenter 来显示正在播放哪首歌曲 但我希望将 HTTP Live Streaming 合并到我的应用程序中 该应用程序将在后台出现任意数量的不同曲目 有没有办法在应用程序处于后
  • 使用第三方库

    我想集成一个Timeline http visjs org docs timeline 在我的镀铬扩展中 我已经下载了这个插件的js文件和css文件 并将它们放在我的chrome扩展的根目录中 chrome 扩展本身只是向现有页面注入JS并
  • Hibernate 中 load() 与 get() 相比有何优势?

    谁能告诉我有什么好处load vs get 在休眠状态下 这些方法的语义解释并不能解释它们之间的实际差异 实际规则如下 Use get 当你想加载一个对象时 Use load 当您需要获取对象的引用而不发出额外的 SQL 查询时 例如 创建
  • 将单独的日志级别记录到 log4j2 属性文件中的单独文件

    有什么办法可以为不同的日志级别创建单独的日志文件吗 我想要的只是记录error记录到一个文件并info记录到另一个文件 我没有找到任何解决方案来做到这一点log4j2 properties 这里是log4j2 xml我得到了并且效果很好 谁
  • 如何在vim中在新窗口中打开新文件

    有没有办法在新的 shell 窗口或选项卡中打开 vim 我习惯做 mate file 这会在新窗口中打开文件 我更喜欢有一个 中央外壳 我可以根据需要在其他窗口或选项卡中发出命令并编辑文件 人们通常如何在本地打开 vim 文件 从 vim
  • 如何使用 Google App Engine Blobstore 保存网页图像

    UPDATE 这个问题最初是在不支持编程文件创建 例如通过 url 的情况下提出的 这已经改变了 请参阅 http code google com appengine docs java blobstore overview html Wr
  • 电容器推送通知和 FCM 生成不同的令牌,导致 android 崩溃

    带有 Capacitor 推送通知和 FCM 插件的 Ionic 5 应用程序 import FCM from capacitor community fcm import ActionPerformed PushNotificationS
  • 厨师从模板和刀搜索中创建逗号分隔的字符串

    我正在尝试从 Knife 查询创建动态创建的以逗号分隔的 Splunk 索引器列表 数据端口附加到每个主机名 该查询将返回的主机列表提供给模板和相应的 erb 然而 尽管当我聚合到测试 Docker 实例时没有抛出任何错误 但 conf 文
  • 登录多线程应用程序,在构造函数中使用互斥体

    我一直在编写一个基于 RAII 的 C 方法入口 出口记录器 用法是这样的 void Class Method METHOD NAME Class Method I know I could use FUNCTION instead lt
  • 如何获取值数组作为 plusargs?

    如何获取值数组作为参数 我需要从命令行获取一组未定义大小的命令 如何将这些参数放入数组或队列中 Eg CMDS READ WRITE READ N WRITE 它应该被带到一个数组中 value plusargs不支持数组 但支持字符串 看
  • 帮助重新采样/上采样

    我有一个包含 240 个数据点的数组 采样频率为 600hz 代表 400ms 我需要将此数据重新采样为以 1024hz 采样的 512 个数据点 代表 500ms 我假设因为我从 400 毫秒的数据开始 所以最后 100 毫秒只需要用 0
  • 无法在新创建的 GKE 集群上初始化 helm (tiller)

    我刚刚在 Google Cloud 平台上创建了一个 GKE 集群 我已经在云控制台安装了helm helm version version BuildInfo Version v3 0 0 GitCommit e29ce2a54e96cd
  • 移动的pdf文件的htaccess规则?

    我已经尝试过 我真的已经 我屈服了 Wordpress 和 htaccess 哦 痛苦 旧的静态站点的根目录中有 pdf doc xls 和 zip 文件 我已将所有文件作为媒体项加载 因此它们都位于 wp content uploads
  • 如何使用 prisma 和 postgresql 处理条件准备语句?

    我有一个搜索查询 其参数根据客户端输入而变化 await prisma queryRaw SELECT column FROM table condition WHERE column condition 如何使用准备好的语句编写此查询并避
  • 如何使用 NSURLSession 和 Delegate 方法连接到 Web 服务?

    我正在尝试连接 iOS 中的网络服务 但遇到了很多问题 我在这里找到了一个练习网络服务 http www w3schools com webservices tempconvert asmx op CelsiusToFahrenheit h