【发布时间】:2012-11-17 21:59:28
【问题描述】:
我正在尝试通过我的应用向 YouTube 视频添加评论,但显然它不起作用。然后我去了 Api v2 网站,看到了这个:
POST /feeds/api/videos/VIDEO_ID/cmets HTTP/1.1
主持人:gdata.youtube.com
内容类型:application/atom+xml
内容长度:CONTENT_LENGTH
授权:承载ACCESS_TOKEN
GData-版本:2
X-GData-Key:key=DEVELOPER_KEY
但它没有给我任何回报,也没有发表评论。 那么我必须将发布请求发送到哪里以及我必须在其中写什么?
到目前为止,这是我的代码:
SBJsonParser *parser = [[SBJsonParser alloc] init];
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/FejWBVt7jtk/comments"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"Bearer %@", [defaults objectForKey:@"accessToken"]] forHTTPHeaderField:@"Authorization"];
[request setValue:@"key=DEVELOPER KEY" forHTTPHeaderField:@"X-GData-Key"];
[request setHTTPBody:postData];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *dict = [parser objectWithString:content];
NSLog(@"%@", dict);
谢谢!
【问题讨论】:
-
我希望这不是您的实际 YouTube API 密钥。
-
它是,但你想用它做什么?它只是开发者密钥
-
这似乎是保密的。 :)
-
我可以看到的一个问题是您正在尝试使用 JSON 解析器解析 XML 响应。
-
YouTube 说我必须给他们 XML。自己回馈json。
标签: objective-c http post youtube request