我正在制作要支持 Google DFP广告管理系统广告服务器的播放器。广告服务器具有VAST链接,该链接是XML类型,包含媒体文件,跟踪链接,clickLink等...

clickLinks包含一个重定向URL到我无法正确解码的原始URL。

链接看起来像:
https://pubads.g.doubleclick.net/aclk?sa=L&ai=B2JSpRFcKVq_SAsifbr-gqPAE9-CGpQcAAAAQASCPsd4lOABY37Owp4gCYJn-noa4IboBCzYyNHgzNTJfeG1syAEF2gEFaHR0cDqpArGOjXR685U-wAIC4AIA6gIULzEzMTMwMjQwNy9Vem1hbl9Ea3n4AvTRHpADhAeYA4QHqAMB0ASQTuAEAZAGAaAGI9gHAQ&num=0&cid=5Ggrgwo88gHDUD7JBb6uTLxZ&sig=AOD64_0xhsqN4jSnVOZ-eKo9KCVTet61iQ&client=ca-pub-3069068742246799&adurl=http://dkykartal.com/%3Futm_source%3DUzmanTV%26utm_medium%3DVideo_PreRoll%26utm_content%3DDKY_Kartal%26utm_campaign%3DDKY_Kartal_IBillBoard

我尝试使用stringByAddingPercentEscapesUsingEncoding进行解码,然后再次编码,但NSURL似乎已损坏。

原始的VastURL是:

https://pubads.g.doubleclick.net/gampad/ads?sz=624x352&iu=/131302407/Uzman_Dky&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&description_url=[description_url]&correlator=1443516172

如何正确地将其转换为NSURL

最佳答案

再次仔细阅读您的问题。您说要解码URL并调用一个称为

stringByAddingPercentEscapesUsingEncoding
        ^^^^^^

尝试使用stringByRemovingPercentEncoding。这应该解码您的URL。

另一个问题是如何将其“广播”到NSURL:强制转换意味着您正在强制调试器将变量视为特定类型。这意味着您无法转换对象并将其转换为其他类型的实例。

您必须使用字符串创建NSURL的实例:
NSURL *URL = [NSURL URLWithString:[URLString stringByRemovingPercentEncoding]];

关于ios - 正确解码字符串URL以在NSURL中进行转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32864419/

10-14 16:28