我在视频文章中收到了来自Tumblr的API v2的500响应代码

时间:2011-08-22 18:57:34

标签: objective-c tumblr

我能够成功提交文字帖子(有201个回复),但当我将我的类型参数更改为“视频”并添加适当的嵌入和标题参数时,我从Tubmlr得到500响应。

他们documentation对于我需要为嵌入值提供的内容的细节非常清楚,但我尝试直接链接到文件,< iframe>,< embed>,并使用网址转义在W3Schools使用这两种方法,我总是得到500响应。

从我在其他留言板上看到的情况来看,这并不罕见,但没有人有答案。我正在使用的代码如下。

NSString *apiCallURL = [NSString stringWithFormat:@"http://api.tumblr.com/v2/blog/%@/post", self.baseURL];
NSLog(@"API Call URL: %@", apiCallURL);
NSURL *url = [NSURL URLWithString:apiCallURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"utf-8" forHTTPHeaderField:@"charset"];

NSMutableString *body = [[NSMutableString alloc] init]; //Using NSMutableString instead of stringWithFormat to avoid problems with % encoding
[body appendFormat:@"type=video&caption=%@", caption];
[body appendString:@"&embed=EMBED CODE HERE"];
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
[body release], body = nil;

[self.authentication authorizeRequest:request]; 

NSError *error = nil;
NSHTTPURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request
                                     returningResponse:&response
                                                 error:&error];

if (error)
{
    NSLog(@"Error! \n%@", error);
    return;
}
if (data) {
    // API fetch succeeded
    NSString *str = [[[NSString alloc] initWithData:data
                                           encoding:NSUTF8StringEncoding] autorelease];
    NSLog(@"Sharing response (%d): %@", [response statusCode], str);
}

我得到的输出是

Sharing response (500):

我一直试图使用的嵌入代码通过tumblr的web界面工作,并且是以下URL编码版本:

<embed width="480" height="360" src="http://www.keek.com/embed/decaaab" frameborder="0" allowfullscreen />

1 个答案:

答案 0 :(得分:0)

您可能会在邮件列表中看到Tumblr开发人员的答案:

https://groups.google.com/forum/#!topic/tumblr-api/id_pKWwPcro

这似乎是tumblr结束时的一个问题。