我有一个来自 cancelByProducingResumeData 的 resumeData 的字典:如下所示,我想知道如何使用 NSURLSessionResumeCurrentRequest 为 HTTPHeaderField 添加值。
我想知道如何将 NSURLSessionResumeCurrentRequest 的 NSData 转换为 NSURLRequest。
2014-11-11 13:11:30.545 xxxxXXXXX[77997:14163248] resumeInfo => { NSURLSessionDownloadURL = "http://xxx.xxx.xxx/webdav/content/admin/201407/ttp.mp4"; NSURLSessionResumeBytesReceived = 50737920; NSURLSessionResumeCurrentRequest = <62706c69 73743030 d4010203 0405067a 7b582476 65727369 6f6e5824 6f626a65 63747359 24617263 68697665 72542474 6f701200 0186a0af 101c0708 3f404647 4e4f5051 52535435 55566667 68696a6b 6c6d6e6f 70755524 6e756c6c df101b09 0a0b0c0d 0e0f1011 12131415 16171819 1a1b1c1d 1e1f2021 22232425 26272829 252b2c2d 272f2726 26262435 36263826 3a263c3d 3e532431 32522433 53243235 53243137 52243453 24323153 24313356 24636c61 73735224 35532431 38522436 53243232 53243134 52243753 24313953 24313052 24385224 30532431 35532432 33522439 53243131 52243153 24323453 24313652 24325324 32308008 80028000 80078003 800e8002 801b8006 800c8007 800f8007 80008000 80008008 1002800a 80008009 80001009 8000800b 1016800d 08d34110 42264445 574e532e 62617365 5b4e532e 72656c61 74697665 80008005 80045f10 62687474 703a2f2f 63646e2e 6e73752e 736d6172 746b6964 732e7561 6e67656c 2e636f6d 3a383038 302f7765 62646176 2f746f6d 6f2f636f 6e74656e 742f6164 6d696e2f 32303134 30372f74 7470616e 6770616e 675f3031 5f666f72 416c6c2e 6d7075d2 48494a4b 5a24636c 6173736e 616d6558 24636c61 73736573 554e5355 524ca24c 4d554e53 55524c58 4e534f62 6a656374 23404e00 00000000 00100009 10042300 00000000 00000023 00000000 00000000 13ffffff ffffffff ff534745 54d35758 10595f65 574e532e 6b657973 5a4e532e 6f626a65 637473a5 5a5b5c5d 5e801080 11801280 138014a5 60616263 64801580 16801780 18801980 1a555261 6e676556 41636365 70745f10 0f416363 6570742d 4c616e67 75616765 5849662d 52616e67 655f100f 41636365 70742d45 6e636f64 696e675f 100f6279 7465733d 34323732 33323430 2d532a2f 2a55656e 2d75735f 10203431 32323034 36396464 30643736 31653333 31323537 35316433 38366439 62315d67 7a69702c 20646566 6c617465 d2484971 725c4e53 44696374 696f6e61 7279a273 745c4e53 44696374 696f6e61 7279584e 534f626a 656374d2 48497677 5c4e5355 524c5265 71756573 74a27879 5c4e5355 524c5265 71756573 74584e53 4f626a65 63745f10 0f4e534b 65796564 41726368 69766572 d17c7d54 726f6f74 80010008 0011001a 0023002d 00320037 0056005c 00950099 009c00a0 00a400a7 00ab00af 00b600b9 00bd00c0 00c400c8 00cb00cf 00d300d6 00d900dd 00e100e4 00e800eb 00ef00f3 00f600fa 00fc00fe 01000102 01040106 0108010a 010c010e 01100112 01140116 0118011a 011c011e 01200122 01240126 0128012a 012c012e 01300131 01380140 014c014e 01500152 01b701bc 01c701d0 01d601d9 01df01e8 01f101f3 01f401f6 01ff0208 02110215 021c0224 022f0235 02370239 023b023d 023f0245 02470249 024b024d 024f0251 0257025e 02700279 028b029d 02a102a7 02ca02d8 02dd02ea 02ed02fa 03030308 03150318 0325032e 03400343 03480000 00000000 02010000 00000000 007e0000 00000000 00000000 00000000 034a>; NSURLSessionResumeEntityTag = 41220469dd0d761e33125751d386d9b1; NSURLSessionResumeInfoLocalPath = "/Users/Library/Developer/CoreSimulator/Devices/0F13C2EC-4B9C-4FB4-AD78-7A309C4C65F2/data/Containers/Data/Application/28925A91-9DDE-4041-A1F5-A35387E9115E/tmp/CFNetworkDownload_NKJuq1.tmp"; NSURLSessionResumeInfoVersion = 1; NSURLSessionResumeOriginalRequest = <62706c69 73743030 d4010203 0405064d 4e582476 65727369 6f6e5824 6f626a65 63747359 24617263 68697665 72542474 6f701200 0186a0ad 07083334 3a3b4243 44454647 4855246e 756c6cdf 1015090a 0b0c0d0e 0f101112 13141516 1718191a 1b1c1d1e 1f20211f 23242520 20282828 1e2c2d20 28303132 53243132 52243353 24313752 24345324 31335624 636c6173 73522435 53243138 52243653 24313452 24375324 31395324 31305224 38522430 53243135 52243953 24313152 24315324 31365224 32800880 02800780 03800280 0c800680 0b800780 07800080 00800080 08100280 09800780 00100980 0a101008 d3350e36 28383957 4e532e62 6173655b 4e532e72 656c6174 69766580 00800580 045f1062 68747470 3a2f2f63 646e2e6e 73752e73 6d617274 6b696473 2e75616e 67656c2e 636f6d3a 38303830 2f776562 6461762f 746f6d6f 2f636f6e 74656e74 2f61646d 696e2f32 30313430 372f7474 70616e67 70616e67 5f30315f 666f7241 6c6c2e6d 7075d23c 3d3e3f5a 24636c61 73736e61 6d655824 636c6173 73657355 4e535552 4ca24041 554e5355 524c584e 534f626a 65637423 404e0000 00000000 10000923 00000000 00000000 23000000 00000000 0013ffff ffffffff ffffd23c 3d494a5c 4e535552 4c526571 75657374 a24b4c5c 4e535552 4c526571 75657374 584e534f 626a6563 745f100f 4e534b65 79656441 72636869 766572d1 4f505472 6f6f7480 01000800 11001a00 23002d00 32003700 45004b00 78007c00 7f008300 86008a00 91009400 98009b00 9f00a200 a600aa00 ad00b000 b400b700 bb00be00 c200c500 c700c900 cb00cd00 cf00d100 d300d500 d700d900 db00dd00 df00e100 e300e500 e700e900 eb00ed00 ef00f000 f700ff01 0b010d01 0f011101 76017b01 86018f01 95019801 9e01a701 b001b201 b301bc01 c501ce01 d301e001 e301f001 f9020b02 0e021300 00000000 00020100 00000000 00005100 00000000 00000000 00000000 000215>; NSURLSessionResumeServerDownloadDate = "Fri, 25 Jul 2014 04:36:22 GMT";
最佳答案
我尝试用下面的代码更改我的请求,非常成功! ;)
- (NSData *)regenerateResumeData:(NSData *)originData
{
NSString *error;
NSPropertyListFormat format;
NSMutableDictionary* plist = [NSMutableDictionary dictionaryWithDictionary:[NSPropertyListSerialization propertyListFromData:originData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error]];
NSData *currentRequest = [plist objectForKey:@"NSURLSessionResumeCurrentRequest"];
NSURLRequest *request = [(NSURLRequest *)[NSKeyedUnarchiver unarchiveObjectWithData:currentRequest] copy];
NSMutableURLRequest *mutableRequest = [request mutableCopy];
[mutableRequest addValue:[plist objectForKey:@"NSURLSessionResumeEntityTag"] forHTTPHeaderField:@"If-Match"];
[mutableRequest addValue:[NSString stringWithFormat:@"bytes=%@-", [plist objectForKey:@"NSURLSessionResumeBytesReceived"]] forHTTPHeaderField:@"Range"];
request = [mutableRequest copy];
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:request];
[plist removeObjectForKey:@"NSURLSessionResumeCurrentRequest"];
[plist setValue:archivedData forKey:@"NSURLSessionResumeCurrentRequest"];
return [NSPropertyListSerialization dataFromPropertyList:plist format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
}
关于ios - 如何从resumeData的NSURLSessionResumeCurrentRequest中为HTTPHeaderField添加Value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877008/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为