在我的应用程序中,我集成了FHSTwitterEngine,用于在Twitter上发布图像。直到上周,它运作良好。但突然间,在尝试发布图像时,显示出204错误
Domain = FHSErrorDomain Code = 204“请求未返回任何内容。”
我不认为这是重复帖子的问题,因为图像会根据用户选择而改变,并且在尝试第一次发布图像时它会给出错误。
基于文字的推文工作正常。问题是仅发布图片
我正在使用的代码
dispatch_async(GCDBackgroundThread, ^{
@autoreleasepool {
NSError *returnCode = [[FHSTwitterEngine sharedEngine]postTweet:self.textToTweet withImageData:UIImagePNGRepresentation(tweetImg)];
NSString *title = nil;
NSString *message = nil;
if (returnCode) {
NSLog("Error-->%d",returnCode.code);
} else {
title = @"Tweet Posted";
message = @"Successfully";
}
}
});
提前致谢
答案 0 :(得分:1)
这是一个格式错误的多部分表单数据问题。
看看FHSTwitterEngine.m。
寻找这些行
- (NSError *)sendPOSTRequestForURL:(NSURL *)url andParams:(NSDictionary *)params
...
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",key] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data];
在它下面添加这些行
if ([obj isKindOfClass:[NSData class]]) {
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
}
我也注意到它缺少状态参数bug 寻找
- (NSError *)postTweet:(NSString *)tweetString withImageData:(NSData *)theData inReplyTo:(NSString *)irt {
...
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"media[]"] = theData;
并添加此
params[@"status"] = tweetString;
或者你可以在这里得到修复: https://github.com/alvani/FHSTwitterEngine/blob/master/FHSTwitterEngine/FHSTwitterEngine.m
感谢。
答案 1 :(得分:0)
我无法在Twitter上发布图片,但现在使用此代码,我可以将带有图片的数据发布到Twitter。
https://github.com/alvani/FHSTwitterEngine
只需用此库替换您的FHSTwitterEngine。
它只是在库中添加了一些更改或错误
答案 2 :(得分:0)
使用此代码压缩现有图像...
NSData *data = UIImageJPEGRepresentation(imageView.image, 0.6);
答案 3 :(得分:0)
您需要将字符串长度低于130个字符