我想用bit.ly跟踪我的itunes联盟链接。 我从http://target.georiot.com获得了联盟链接。 它在操作直接链接(转到itunes)时有效。 但是当我用bitly缩短会员链接时,它不会出现在同一页面上。
以下是获取缩短网址的代码:
NSString *longURL = link;
NSString *bitlyRequestURLString = [NSString stringWithFormat:@"http://api.bit.ly/shorten?version=2.0.1&format=xml&login=%@&apiKey=%@&longUrl=%@",
@"myappname",
@"myappidentifier",
longURL];
NSURL *bitlyURL = [NSURL URLWithString:bitlyRequestURLString];
// get the short URL from bit.ly
NSError *error;
NSString *response = [NSString stringWithContentsOfURL:bitlyURL encoding:NSUTF8StringEncoding error:&error];
NSString *shortURL = @"";
NSArray *responseParts = [response componentsSeparatedByString:@"<shortUrl>"];
if ([responseParts count] > 1) {
NSString *responsePart = [responseParts objectAtIndex:1];
responseParts = [responsePart componentsSeparatedByString:@"</shortUrl>"];
if ([responseParts count] > 0) {
shortURL = [responseParts objectAtIndex:0];
}
}
上次重定向链接就像“http://phobos.apple.com/WebObjects / ....”
任何想法? 感谢
答案 0 :(得分:0)
在将查询字符串发送到bit.ly
之前,您可能需要对longURL进行URL编码您可以使用NSString
方法stringByAddingPercentEscapesUsingEncoding:
NSString *longURL = [link stringByAddingPercentEscapesUsingEncoding:
NSASCIIStringEncoding];
NSString *bitlyRequestURLString = [NSString stringWithFormat:@"http://api.bit.ly/shorten?version=2.0.1&format=xml&login=%@&apiKey=%@&longUrl=%@",
@"myappname",
@"myappidentifier",
longURL];
答案 1 :(得分:0)
我刚尝试使用bit.ly REST API创建一个简短的URL,并且返回的URL按预期工作,请参阅下文。看起来先前的答案表明编码是在目标上,标准的url编码(百分比编码,如http://meyerweb.com/eric/tools/dencoder/)似乎可以解决问题。
返回: {“status_code”:200,“status_txt”:“OK”,“data”:{“long_url”:“http://target.georiot.com/Proxy.ashx?grid=64&id=8i/ET44NjHw&offerid = 146261&amp; type = 3&amp; subid = 0&amp; tmpid = 1826&amp; RD_PARM1 = http://itunes.apple.com/us/album/metallica/id278116714?uo = 4&amp; partnerId = 30 /“,”url“:” http://bit.ly/zR6uzb“,”hash“:”zR6uzb“,”global_hash“:”wFpgG2“,”new_hash“:1}}
结果url按预期工作(删除转义符后):http:\ bit.ly \ zR6uzb
在GeoRiot,我们最近还添加了一个新的集成网址缩短器,您可能会感兴趣,但我们还没有公开它的API。如果您有兴趣在我们有空的时候给它一个机会,请告诉我们。这里的最大好处是可以删除bit.ly和georiot之间的额外重定向,从而加快了用户的响应时间。
无论如何,自原帖以来已经有一段时间了,所以希望你能解决这个问题。如果不告诉我们,我们会尽力帮助您!