iPhone:如何使用 Xcode 向 Web 服务发送 HTTP 请求

2024-02-08

如何使用 Objective-C 向 Web 服务发送 HTTP 请求?我需要从 MySQL 数据库中获取一些数据,因此我需要发送请求以便获取数据。


编辑,因为这是一个热门问题,而且时间在不断流逝。 与此同时,Apple 引入了 NSJSONSerialization。看一下文档:https://developer.apple.com/documentation/foundation/jsonserialization https://developer.apple.com/documentation/foundation/jsonserialization仅当您需要为 5.0 之前的 iOS 创建代码时,您可能需要使用下面提到的 json-framwork。

除此之外,以下原始答案仍然有效:

假设您以 JSON 格式交换数据,您可能有兴趣阅读本文。http://iosdevelopertips.com/cocoa/json-framework-for-iphone-part-2.html http://iosdevelopertips.com/cocoa/json-framework-for-iphone-part-2.html

但是,该文章的第一部分回答了有关如何从 Web 服务器/服务接收数据的更普遍的问题:

- (NSString *)stringWithUrl:(NSURL *)url
{
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                                    cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                                    timeoutInterval:30];
        // Fetch the JSON response
    NSData *urlData;
    NSURLResponse *response;
    NSError *error;

    // Make synchronous request
    urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                        returningResponse:&response
                                                    error:&error];

    // Construct a String around the Data from the response
    return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
}

这是一个简单的 http 请求示例,对于您的后续步骤来说肯定足够了。 该方法给出一个 URL,并以 NSString 形式返回服务器发送的数据。

一旦正常工作,您将希望避免您的应用程序在请求“播出”时冻结。 您可以通过异步请求来解决这个问题。 Google 或 stackoverflow 上的搜索将为您提供相关示例和教程的链接。但我建议先从这里开始,尽管这可能不是最终的解决方案。

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

iPhone:如何使用 Xcode 向 Web 服务发送 HTTP 请求 的相关文章

  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • 从未调用过交互式委托方法

    我想在 ViewController 1 和 NavigationViewController 2 之间进行交互式转换 NavigationController 通过按钮调用 因此呈现时没有交互转换 它可以通过按钮或 UIPanGestur
  • ABAddressBookCopyArrayOfAllPeople 中缺少联系人

    我试图从我的应用程序中的地址簿中查找电话号码 但很惊讶没有找到它 问题是 我已经在我的应用程序访问的控制台中打印了地址簿的所有号码 奇怪的是 有些联系人丢失了 我正在将输出与我的地址簿进行比较 虽然数量很少 但仍然如此 这就是我访问地址簿的
  • iPhone X 将对象底部与安全区域对齐会破坏其他设备上的外观

    关于 iPhone X 自动布局怪癖的问题 我有两个按钮 以前这些按钮将与超级视图底部对齐 偏移量为 20 以免它们接触屏幕底部 此后我将链接更改为安全区域而不是超级视图 Here s the original setup Looks go
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • Xamarin - 错误:dsymutil 退出,代码为 72

    最近升级到 VS for Mac 8 10 21 在构建应用程序时 我得到 Xamarin Shared targets 3 3 Error dsymutil exited with code 72 这是 Xcode 13 3 的情况 完整
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • 为什么 websocket 需要使用 HTTP 进行打开握手?为什么不能成为一个独立的协议呢?

    Websocket 的设计方式是 通过使其握手成为有效的 HTTP 升级请求 其服务器可以与 HTTP 服务器共享端口 我对这个设计理念存有疑问 无论如何 WebSocket 协议都是一个独立的基于 TCP 的协议 为什么我们需要这个 HT
  • 在 iOS 上使用 RNCryptor 异步解密大文件

    我需要在 iOS 上使用 RNCryptor 异步解密一个大文件 以便显示进度条 我在任何地方都找不到示例 因此尝试了我猜对的方法 但是 我想出的方法不起作用 解密器的处理程序从未被调用 并且线程在发送所有数据后因 EXC BAD ADDR
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • 将 iPad xib 转换为 iPhone xib

    我看过很多关于将 iPhone xib 转换为 iPad xib 的帖子和教程 但我想反过来做 我能找到的唯一资源是 将 iPad 应用程序转换为 iPhone https stackoverflow com questions 68550
  • 浏览器显示 clojure 环中不存在 access-control-allow-origin 标头

    我通过客户端浏览器向服务器发出请求 如下所示https example com bar https example com bar 但出现错误 Access to XMLHttpRequest at https example com ba
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • iPhone 上的语音识别

    我需要开发一个识别语音的 iPhone 应用程序 并根据结果执行进一步的任务 我知道iPhone 3 0不支持语音识别 我需要在服务器端实现语音识别软件 我只知道这个事情 因为我是新手 所以我不知道如何处理 意味着我需要购买哪些软件并在服务
  • Mac 上的 Delphi - 可能吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我负责一个 Delphi Win32 项目管理应用程序 我刚刚完成了向 Delphi 2009 的迁移
  • 所有 RestKit 项目在归档时都无法构建

    这个问题涉及RESTKIT 0 9 x 如果您是 Restkit 新手 请考虑使用较新的版本0 10 x https github com RestKit RestKit tree v0 10 1 branch 我最近继承了一个项目 使用r
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一
  • 从超立方体图像中获取文本的确切位置

    使用 tesseract 中的 GetHOCRText 0 方法 我能够检索 html 中的文本 并在 webview 中呈现 html 时 我能够获取文本 但图像中文本的位置与输出不同 任何想法都非常有帮助 tesseract gt Se

随机推荐

  • 如何在Flutter中绘制带有尖角三角形的线?

    我正在考虑实施以下设计 如何实现如上图所示的线上的三角形凹凸 我是颤振的新手 对如何开始这方面一无所知 很简单 你只需要了解如何使用剪刀即可 方法如下 你需要使用ClipPath override Widget build BuildCon
  • AngularJS 两个 http get 在一个控制器中会出现问题

    我在一个控制器中有两个 http GET 有时它可以工作 并且其中两个正在工作 有时只有一个 http Get 可以工作 有时它们都没有显示 有什么建议么 controller nextSidorAdminCtrl function sco
  • Firebase 数据库安全,无需 Firebase 身份验证

    我在 Play 商店上发布了一个应用程序 我想在该应用程序中实现 firebase 我已阅读所有文档 但有两个疑问 如果有人在我的应用程序中使用 apk 反编译器并获取 google services json 他们可以对数据库做任何他们想
  • 如何将 CKFinder 与 Laravel 集成?

    我正在尝试将 CKFinder 与 Laravel 集成 我已经完成了 95 左右 我可以让一切正常工作 除了CheckAuthentication功能 我必须做到return true无论上传是否有效 我尝试做的是在 config php
  • 如何获取按计数列排序的组

    很难用简单的英语问这个问题 所以我会展示我正在尝试做的事情 这是我的 SQL 代码 select top 100 Name COUNT Name as total from ActivityLog where Timestamp betwe
  • 如何预加载 .net 程序集

    在我的工作中 我们正在使用 net Framework 4开发不同的应用程序 所有应用程序都使用我们开发的通用程序集 例如data dll中的数据层 这些应用程序驻留在网络驱动器上并直接从那里启动 大多数大型应用程序第一次启动 冷启动 需要
  • 在python中将数字表示为二的幂之和的最快方法是什么

    例如 gt gt gt two powers 42 gt gt gt 2 8 32 我目前的幼稚实现 取自here https stackoverflow com a 27936818 1177288 看起来像那样 def two powe
  • 如何优雅地停止单节点 kubernetes 集群

    我已经根据 官方教程 1 设置了单节点kubernetes 除了官方文档之外 我还设置了单节点集群 kubectl taint nodes all node role kubernetes io master 残疾人驱逐限制 cat lt
  • Windows 窗体,从父窗体获取属性

    我遇到了一点问题 我在父表单中有一个数据表 我打开一个对话框表单 获取数据表属性并创建一个复选框列表 这将用于导出这些列 但是当我运行应用程序时 parentform 属性为空 我尝试在父窗体和对话框窗体中设置它 我假设如果调用 ShowD
  • 我在哪里弄乱了输出格式?

    因此 当我尝试运行代码时收到一条错误消息 但我无法弄清楚问题到底是什么 它说这是一个 ValueError 但我不知道到底是哪一个 也许只是迟到了 但我却不知所措 这是我的代码 def sort count dict avg scores
  • 为Android应用程序设置图标

    如何为我的 Android 应用程序设置图标 如果您希望您的应用程序在多种设备上可用 您应该将应用程序图标放在不同的位置res drawable 提供的文件夹 在每个文件夹中 您应该包含一个 48dp 大小的图标 drawable ldpi
  • go helm 图表模板中的循环[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试在 kubernetes helm 图表中循环计数 如下所示 reaction mongo url big mongodb for m
  • TypeScript 将camelCase 键转换为snake_case

    想象一下 我们有一些具有驼峰命名法属性的对象类型 type Foo propertyBob string propertyJane number 有没有办法创建一个将camelCase转换为snake case的泛型 例如 type foo
  • 发布操作:“提交助手应用程序时出错”,没有显示错误

    我正在尝试发布我的第一个 Google Assistant 操作 但在尝试提交应用程序时 控制台告诉我 提交助理应用程序时出错 但没有任何详细信息 是否有任何日志或其他内容可以为我提供有关在提交之前需要修复的更多详细信息 我迷路了 谢谢 许
  • Pytorch RuntimeError:CUDA 内存不足且有大量可用内存

    在训练模型时 我遇到了以下问题 RuntimeError CUDA out of memory Tried to allocate 304 00 MiB GPU 0 8 00 GiB total capacity 142 76 MiB al
  • 使用 NetBeans 6.8 进行 XSLT 自动完成

    我记得当时NetBeans 6中支持XSLT 现在我使用NetBeans 6 8 但仍然找不到这样的插件 你能帮助我吗 工具 gt 插件 gt 设置添加http updates netbeans org netbeans updates 6
  • 优化TreeView方法

    我有一个非常大的方法可以插入子元素TreeView 基本上我做了两个不同的查询 并在 I N 上设置了很小的更改 第一个 foreach 插入父级的第一个子级 第二个 foreach 插入之前创建的子级的子级 Foreach查询只是改变条件
  • Android 兼容包不包含 Activity.getFragmentManager()

    我开始尝试使用 3 月 3 日刚刚发布的 Android 兼容包向我的 Android 应用程序添加片段 该应用程序基于 2 1 我将该库包含到我的项目中 并开始将代码从基于 Activity 的类移动到基于 Fragment 的类 但我注
  • 如何在复杂的单元格中找到元素?

    我有一个复杂的元胞数组 例如 A 1 2 3 4 5 6 7 8 9 10 如何找到A中的元素 例如 我想检查 9 是否在 A 中 如果您的元胞数组可以有任意数量的嵌套级别 则只需递归所有级别即可检查值 这是一个可以执行此操作的函数 fun
  • iPhone:如何使用 Xcode 向 Web 服务发送 HTTP 请求

    如何使用 Objective C 向 Web 服务发送 HTTP 请求 我需要从 MySQL 数据库中获取一些数据 因此我需要发送请求以便获取数据 编辑 因为这是一个热门问题 而且时间在不断流逝 与此同时 Apple 引入了 NSJSONS