YouTube-Api评论视频

时间:2012-11-19 19:06:58

标签: ios http post youtube youtube-api

我正试图通过youtube api对youtube视频发表评论。我必须将一些XML发送到他们的服务器,但是当我这样做时,我什么也没回来,也没有在视频上发表评论。

继承人link to the api documentation

  

POST / feeds / api / videos / VIDEO_ID / comments HTTP / 1.1

     

主持人:gdata.youtube.com

     

Content-Type:application / atom + xml

     

内容长度:CONTENT_LENGTH

     

授权:持票人ACCESS_TOKEN

     

GData-Version:2

     

X-GData-Key:key = DEVELOPER_KEY

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:yt="http://gdata.youtube.com/schemas/2007">
<content>This is a crazy video.</content>
</entry>

我非常感谢你的帮助,因为我已经坚持了好几天。 谢谢!

这是我的代码:  NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];

NSString *requestString = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><entry xmlns=\"http://www.w3.org/2005/Atom\"xmlns:yt=\"http://gdata.youtube.com/schemas/2007\"><content>%@</content></entry>", [textField text]];

NSData *postData = [requestString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

[request setURL:[NSURL URLWithString:@"https://gdata.youtube.com/feeds/api/videos/4NE7Nmmt0R4/comments"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"key=%@", [defaults objectForKey:@"accessToken"]] forHTTPHeaderField:@"Authorization"];
[request setValue:@"key=AI39si4apF3QyQkXbH_C5IHIClkyP2mio2QJ3JBUUpvPbO2rhch7tpYjMavZgt5QzGaGrHBfom5mNpoUq_ZLRPPa35KO21O9Pw" forHTTPHeaderField:@"X-GData-Key"];
[request setValue:@"2" forHTTPHeaderField:@"GData-Version"];

[request setHTTPBody:postData];

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

[conn start];

1 个答案:

答案 0 :(得分:0)

每当您发出HTTP请求时,YouTube API都会始终发送HTTP响应。即使您发出完全无效的HTTP请求,您也会收到HTTP错误响应。请仔细检查,看看你是否收到任何回复。如果你真的不是,那么我的猜测是你实际上并没有完成你的HTTP请求 - 也许它由于某些网络问题而从未进入API服务器,或者你可能没有正确计算CONTENT_LENGTH (假设您试图手动计算)。

此外,如果您尚未使用,我建议您使用GData Objective-C client library