问题标签 [nsurlconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
43851 浏览

objective-c - 管理多个异步 NSURLConnection 连接

我的课堂上有大量重复代码,如下所示:

异步请求的问题是,当您有各种请求发出时,并且您分配了一个委托将它们全部视为一个实体,许多分支和丑陋的代码开始制定:

我们要返回什么样的数据?如果它包含这个,那就做那个,否则做其他。我认为能够标记这些异步请求会很有用,就像您能够使用 ID 标记视图一样。

我很好奇什么策略对于管理一个处理多个异步请求的类最有效。

0 投票
1 回答
5498 浏览

iphone - 如何在 iPhone 上接收来自 URL 的数据?

我正在使用 Apple 文档中的代码进行一些 HTTP 通信。我可以成功连接到 URL,但我无法从我的服务器接收数据。

原因可能是:

  1. receivedData在 Action 本身中声明。注释说我应该在别处声明它。我应该在哪里申报?我应该将其声明为控制器的财产吗?

  2. 如何[[NSMutableData data] retain]找到 URL 之外的 URL if{}

0 投票
2 回答
1296 浏览

iphone - 从 iPhone 上的 URL 接收数据?

我正在使用 Apple Document 创建一个应用程序。我成功连接到服务器,但我从服务器收到 0 个字节(没有响应数据)。我采取以下步骤:

  1. 我创建了一个基于视图的应用程序并添加了一个属性“receivedData”:

    在 ViewController.h 中:

    在 ViewController.m 中:

    /li>
  2. ViewController.m 的动作 'ViewDidLoad',我补充说:

    /li>
  3. 在视图中添加一个按钮并为其添加操作:

    /li>

当我调试这些代码时,我发现 receivedData 返回 0 个字节。关于出了什么问题的任何想法?对我的代码进行简单修改将不胜感激。

0 投票
3 回答
21391 浏览

iphone - 如何使用 iPhone SDK 下载大文件并避免内存使用问题?

我正在使用NSURLConnection该类在我的 iPhone 应用程序中下载一个大文件,但它经常崩溃,因为它使用了太多内存。我正在做通常的NSURLConnection用法,将接收到的数据附加到一个NSMutableData对象。

然后在我完成下载整个文件后,将其保存到本地临时文件,并将其作为映射文件读取,如下所示:

我可以在这里改进什么来避免这些内存使用问题?

0 投票
3 回答
8100 浏览

iphone - NSURLConnection、NSURLRequest 和远程缓存

我在 iPhone 上使用 NSURLConnection 异步连接进行请求缓存时遇到了一个小问题。我不知道我是否理解错误,或者 Cocoa 是否在做与它应该做的相反的事情......

NSURLRequest 的文档说:

NSURLRequestReloadIgnoringLocalCacheData

指定应从原始源加载 URL 加载的数据。不应使用现有缓存数据来满足 URL 加载请求。

和:

NSURLRequestReloadIgnoringLocalAndRemoteCacheData

指定不仅应忽略本地缓存数据,而且应指示代理和其他中间体在协议允许的范围内忽略其缓存。

现在,如果我发送一个带有 NSURLRequestReloadIgnoringLocalCacheData 的 NSURLRequest(它应该忽略本地缓存,但如果可用,则使用远程缓存),发送的标头是:

状态为 200 OK。但是,如果我使用 NSURLRequestReloadIgnoringLocalAndRemoteCacheData,顾名思义,它应该忽略本地和远程缓存,添加一个额外的标头:

响应是 304 Not Modified。我检查了 HTTP RFC,对于“If-None-Match”,它说:

如果任何实体标签与该资源上的类似 GET 请求(没有 If-None-Match 标头)的响应中返回的实体的实体标签匹配,(...)那么服务器不得执行请求的方法 (...) 相反,如果请求方法是 GET 或 HEAD,服务器应该以 304(未修改)响应进行响应

所以似乎如果我使用 NSURLRequestReloadIgnoringLocalAndRemoteCacheData,而不是忽略远程缓存,Cocoa 明确告诉远程服务器它应该使用远程缓存,如果我使用 NSURLRequestReloadIgnoringLocalCacheData,它不会添加该行,实际上远程缓存不是用过的。

那么这里到底发生了什么?我错过了什么,还是 Cocoa 设置了错误的标题?

0 投票
4 回答
5271 浏览

objective-c - 关注 URLConnection 有什么问题?

也可以看看:

带有 Cookie 的 Objective-C 异步 Web 请求

我花了一天时间编写这段代码,谁能告诉我这里出了什么问题?

WSHelper 继承自 NSObject,我什至尝试过 NSDocument 和 NSObjectController 等等。

代码不会做任何事情,它根本没有进展。我什至尝试使用/不使用 startImmediately:YES 但没有运气!!!,这是在主窗口中执行的,因此即使线程及其运行循环也成功运行。

我尝试调用同步请求,它工作正常!但我需要异步解决方案。

我已经在项目中添加了 CoreServices.Framework,还有什么我应该添加到项目中的吗?任何编译器设置?还是我必须先初始化任何东西才能使用 NSURLConnection?

任何在其自己的 NSRunLoop、Objective-C 和 MAC 开发上的不同线程上运行 NSURLConnection 的解决方案在文档中的任何地方都没有示例代码,这使得一切都变得如此难以编码。

0 投票
1 回答
1748 浏览

cocoa - NSURLConnection 委托在服务器状态 401 上没有得到它的 didReceiveAuthenticationChallenge 方法

我设置了一个简单的 NSURLConnection 来查询 http-server。

服务器响应代码 401 和 WWW-Authenticate 标头集

我想这会向我的委托人的连接发送一条消息:didReceiveAuthenticationChallenge: 方法,但事实并非如此。

我也实施了

只是为了确保它不会尝试从我的钥匙串中发送缓存的凭据,而事实并非如此。

0 投票
1 回答
1742 浏览

iphone - NSURLConnection 失败问题

我正在使用下面列出的 NSURLConnection。关于这门课,我有三个问题。当我连接 url 值时,调试器会点击此行两次,但不会点击它上面的行:

我第二次得到 EXC_BAD_ACCESS。使用第一个 url 分配(注释掉)工作正常。

1.) 有什么区别?

2.) 如果我将文件名更改为 afile.mp,则请求通过并且 [receivedData length] 的值约为 1600 时

被击中。有没有办法准确检查 receivedData 是否具有您请求的实际数据。目标文件约为 7MB,但可以从 1.5MB 到 9MB 不等。我请求的资源不存在,但有什么表明吗?

3.)我在我的应用程序委托中这样做。唯一的协议是 UIApplicationDelegate。如果没有委托,所有 NSURLConnection 方法如何工作?

0 投票
2 回答
2509 浏览

iphone - iPhone中的HttpBasicAuthentication

在我的 iPhone 应用程序中,我试图在 iphone 上显示来自我的服务器的图像,这需要授权。我正在尝试使用 NSURLConnection 来获取图像,但它没有要求我提供用户凭据。即它根本不会使用 didReceiveAuthenticationChallenge 方法。谁能帮我解决这个问题?

0 投票
9 回答
9435 浏览

iphone - 使用 NSURLConnection 异步没有返回数据

我在一些看起来相当
简单但我似乎无法开始工作的事情上度过了一段时光。我正在构建一个
从网络主机检索数据的 iPhone 应用程序。我正在尝试
与主机建立异步连接,因为我想
在连接期间保持设备空闲。(sendSynchronousRequest 冻结
电话,直到请求完成。)这是我的连接代码:

我已经设置了所有适当的委托方法:

As you can see, I've got a boat-load of log messages because I wanted
to see if anything was coming through at all. My connection test
comes back as TRUE but no data ever gets loaded. Like I said, I'm sure
I must be doing (or not doing) something really stupid. But what?
Any help would be most appreciated.

Thanks, Lawrence