菜鸟教程小白 发表于 2022-12-13 10:29:16

ios RestKit 后附 UIImage


                                            <p><p>我正在尝试使用 RestKit 将图像发布到我的服务器并映射来自服务器的响应。但是服务器总是支持我发送的那个文件是零。
谁能帮我解决这个问题?</p>

<pre><code>NSData *data = UIImageJPEGRepresentation(imageData, 1.0);



NSDictionary *params = [ initWithObjectsAndKeys:
                        data, @&#34;avatar&#34;,
                        nil];


RKObjectMapping* objectMapping = ];
[objectMapping addAttributeMappingsFromDictionary:@{
                                                    @&#34;message&#34; : @&#34;message&#34;
                                                    }];

NSIndexSet *successStatusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful);

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:objectMapping
                                                                                        method:RKRequestMethodPOST
                                                                                 pathPattern:nil
                                                                                       keyPath:nil
                                                                                 statusCodes:successStatusCodes];

RKObjectManager *objectManager = ];
[ setDefaultHeader:@&#34;device_uid&#34; value:];
forMIMEType:@&#34;image/jpeg&#34;];
;
;
objectManager.requestSerializationMIMEType = RKMIMETypeJSON;
;
[objectManager postObject:nil path:@&#34;/api/upload-avatar&#34; parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    NSLog(@&#34;%@&#34;, mappingResult.array);

    for (UpdateAvatar *obj in mappingResult.array) {

      NSLog(@&#34;MESSAGE: %@&#34;, obj.message);

      [ setMessage:obj.message];

    }

    ;
    //[ postNotificationName:@&#34;didRegistered&#34; object:nil];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    NSLog(@&#34;%@&#34;, error);
}];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我已经解决了来自 RESTKit 本身的文档问题。
也许它会对其他人有所帮助:</p>

<pre><code>    NSData *data = UIImageJPEGRepresentation(imageData, 0.3);

RKObjectMapping* objectMapping = ];
[objectMapping addAttributeMappingsFromDictionary:@{
                                                    @&#34;message&#34; : @&#34;message&#34;
                                                    }];

NSIndexSet *successStatusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful);

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:objectMapping
                                                                                        method:RKRequestMethodPOST
                                                                                 pathPattern:nil
                                                                                       keyPath:nil
                                                                                 statusCodes:successStatusCodes];

RKObjectManager *objectManager = ];
[ setDefaultHeader:@&#34;device_uid&#34; value:];
;

NSMutableURLRequest *request = [ multipartFormRequestWithObject:nil method:RKRequestMethodPOST path:@&#34;/api/upload-avatar&#34; parameters:nil constructingBodyWithBlock:^(id&lt;AFMultipartFormData&gt; formData) {
    [formData appendPartWithFileData:data
                              name:@&#34;avatar&#34;
                            fileName:@&#34;image.jpeg&#34;
                            mimeType:@&#34;image/jpeg&#34;];
}];

RKObjectRequestOperation *operation = [objectManager objectRequestOperationWithRequest:request success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

    for (UpdateAvatar *obj in mappingResult.array) {

      ];
      ;
      ];
      ];
    }


} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    NSLog(@&#34;Failure&#34;);
}];

[ enqueueObjectRequestOperation:operation];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios RestKit 后附 UIImage,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29452000/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29452000/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios RestKit 后附 UIImage