0

在我的应用程序中,我集成了 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";
        }
     }
});

提前致谢

4

4 回答 4

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]];
}

我还注意到它缺少状态参数错误。
寻找

- (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

谢谢。

于 2013-10-04T00:58:23.923 回答
0

我无法在 Twitter 上发布图片,但现在使用此代码我可以将带有图片的数据发布到 Twitter。

https://github.com/alvani/FHSTwitterEngine

只需用这个库替换您的 FHSTwitterEngine。

它只是在库中添加了一些更改或错误

于 2014-01-27T08:11:19.573 回答
0

使用此代码压缩现有图像...

NSData *data = UIImageJPEGRepresentation(imageView.image, 0.6);
于 2015-05-22T05:54:31.503 回答
0

您需要发布低于 130 个字符的字符串长度

于 2016-01-09T19:03:54.477 回答