NSURLConnection 和服务器响应问题
Issue with NSURLConnection and server response
我是用NSURLConnection下载文件。(基本上我用JGDownload Accelerator)
我的问题是,当我尝试在一台特定服务器上下载文件时,服务器提供的响应各不相同,并给我不同的 header 响应,如下所示
Printing description of headers:
{
"Accept-Ranges" = bytes;
"Cache-Control" = "max-age=687749";
Connection = "keep-alive";
"Content-Length" = 35617808;
"Content-Type" = "video/mp4";
Date = "Fri, 11 Sep 2015 07:21:59 GMT";
Etag = "\"ee90ce32a16fc115d0799d686e5fe1b4\"";
Expires = "Sat, 19 Sep 2015 06:24:28 GMT";
"Keep-Alive" = "timeout=20";
"Last-Modified" = "Wed, 09 Sep 2015 13:41:37 GMT";
Server = ucdn;
"X-Timestamp" = "1441806096.99264";
"X-Ureq-ID" = "PYMqMNZBGw7LI3xeAHCTQwJs2FvO0y0xuG3+g5B0KcBzTv1v4kTfwCzHQYgrBEGSJQ0tBMG5L+srffrjBfio1R1ChR+wABEHY92PCg==";
"X-VHostId" = "10000, 200000";
}
{
"Cache-Control" = "max-age=687430";
Connection = "keep-alive";
"Content-Length" = 1;
"Content-Range" = "bytes 0-0/35617808";
"Content-Type" = "video/mp4";
Date = "Fri, 11 Sep 2015 07:27:18 GMT";
Etag = "\"ee90ce32a16fc115d0799d686e5fe1b4\"";
Expires = "Sat, 19 Sep 2015 06:24:28 GMT";
"Keep-Alive" = "timeout=20";
"Last-Modified" = "Wed, 09 Sep 2015 13:41:37 GMT";
Server = ucdn;
"X-Timestamp" = "1441806096.99264";
"X-Ureq-ID" = "PYMqMNZBGw7LI3xeAHCTQwJs2FvO0y0xuG3+g5B0KcBzTv1v4kTfwCzHQYgrBEGSJQ0tBMG5L+srffrjBfio1R1ChR+wABEHY92PCg==";
"X-VHostId" = "10000, 710000";
}
基本的尊重是 content-length
键,因为在第一个中它提供了正确的值,而在第二个中它是错误的,我在那里延迟了大约 30 - 40 秒。
有什么办法可以避免这种延迟?
或者任何快速响应的解决方法我的意思是服务器在 1 到 2 秒内提供数据,但回调方法延迟提供数据
看起来像是网络服务本身的问题。
服务本身可能从其他服务获取数据并传递它们。如果其他服务在预定义时间内不接受来自客户端的重复连接,则生成(Retry-After Header)。
我已经尝试了所有可能的方法来减少时间延迟,但似乎没有办法使用 NSURLConnection
。因此,我们已就此问题请求 Apple 工程师支持,稍后会得到他们的一些回复。
到那时为止,由于来自服务器的 header 信息错误,没有其他方法可以避免这种延迟。
如果我收到 Apple 的任何回复,我会在这里更新。
我是用NSURLConnection下载文件。(基本上我用JGDownload Accelerator)
我的问题是,当我尝试在一台特定服务器上下载文件时,服务器提供的响应各不相同,并给我不同的 header 响应,如下所示
Printing description of headers:
{
"Accept-Ranges" = bytes;
"Cache-Control" = "max-age=687749";
Connection = "keep-alive";
"Content-Length" = 35617808;
"Content-Type" = "video/mp4";
Date = "Fri, 11 Sep 2015 07:21:59 GMT";
Etag = "\"ee90ce32a16fc115d0799d686e5fe1b4\"";
Expires = "Sat, 19 Sep 2015 06:24:28 GMT";
"Keep-Alive" = "timeout=20";
"Last-Modified" = "Wed, 09 Sep 2015 13:41:37 GMT";
Server = ucdn;
"X-Timestamp" = "1441806096.99264";
"X-Ureq-ID" = "PYMqMNZBGw7LI3xeAHCTQwJs2FvO0y0xuG3+g5B0KcBzTv1v4kTfwCzHQYgrBEGSJQ0tBMG5L+srffrjBfio1R1ChR+wABEHY92PCg==";
"X-VHostId" = "10000, 200000";
}
{
"Cache-Control" = "max-age=687430";
Connection = "keep-alive";
"Content-Length" = 1;
"Content-Range" = "bytes 0-0/35617808";
"Content-Type" = "video/mp4";
Date = "Fri, 11 Sep 2015 07:27:18 GMT";
Etag = "\"ee90ce32a16fc115d0799d686e5fe1b4\"";
Expires = "Sat, 19 Sep 2015 06:24:28 GMT";
"Keep-Alive" = "timeout=20";
"Last-Modified" = "Wed, 09 Sep 2015 13:41:37 GMT";
Server = ucdn;
"X-Timestamp" = "1441806096.99264";
"X-Ureq-ID" = "PYMqMNZBGw7LI3xeAHCTQwJs2FvO0y0xuG3+g5B0KcBzTv1v4kTfwCzHQYgrBEGSJQ0tBMG5L+srffrjBfio1R1ChR+wABEHY92PCg==";
"X-VHostId" = "10000, 710000";
}
基本的尊重是 content-length
键,因为在第一个中它提供了正确的值,而在第二个中它是错误的,我在那里延迟了大约 30 - 40 秒。
有什么办法可以避免这种延迟? 或者任何快速响应的解决方法我的意思是服务器在 1 到 2 秒内提供数据,但回调方法延迟提供数据
看起来像是网络服务本身的问题。
服务本身可能从其他服务获取数据并传递它们。如果其他服务在预定义时间内不接受来自客户端的重复连接,则生成(Retry-After Header)。
我已经尝试了所有可能的方法来减少时间延迟,但似乎没有办法使用 NSURLConnection
。因此,我们已就此问题请求 Apple 工程师支持,稍后会得到他们的一些回复。
到那时为止,由于来自服务器的 header 信息错误,没有其他方法可以避免这种延迟。
如果我收到 Apple 的任何回复,我会在这里更新。