【问题标题】:Getting error while posting image using FHSTwitterEngine使用 FHSTwitterEngine 发布图片时出错
【发布时间】:2013-10-06 11:07:24
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: ios objective-c fhs-twitter-engine


    【解决方案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

    谢谢。

    【讨论】:

    • 谢谢@alpha2。发布图片问题已解决,但现在当我一次又一次尝试发布相同的图片时,它只是发布图片而不是显示重复的发布错误,而且有时它会给出 -1001 错误代码
    • hello @alpha2 我正在使用此更新的代码将字符串发布到 twitter,但我收到相同的错误 Domain=FHSErrorDomain Code=204 "The request did not return any content."
    • 嗨@alpha2,[obj isKindOfClass:[NSData class]]中的obj是什么?
    • @arunit21 这是一个包含 NSString 或 NSData 的 id 类型,将用作 http 多部分字段
    【解决方案2】:

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

    https://github.com/alvani/FHSTwitterEngine
    

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

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

    【讨论】:

      【解决方案3】:

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

      NSData *data = UIImageJPEGRepresentation(imageView.image, 0.6);
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-26
          • 1970-01-01
          相关资源
          最近更新 更多