我遇到了一个严重的问题,并且搜索了好几个小时而没有找到解决方案。
我有一个使用 Ruby of Rails 和回形针来保存图像的后端服务器。
图片上传从浏览器正常工作,发布到 /pictures
但是当我尝试使用带有 RestKit (iOS) 的多部分请求将其上传到 /pictures.json 时,我得到了 406。
当图像(图片对象)在服务器端创建时,奖励(奖励对象)与之相关联。这个奖励对象是我期望的 JSON 响应。
这是Objective-C代码:
NSMutableURLRequest* uploadRequest = [self.objectManager multipartFormRequestWithObject:nil method:RKRequestMethodPOST
path:@"/pictures.json"
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData
appendPartWithFileData:UIImagePNGRepresentation(socialReward.image)
name:@"picture[pict]"
fileName:imageName
mimeType:@"image/png"];
}];
这是控制器:
@picture = Picture.create( params[:picture] )
respond_to do |format|
format.html {
redirect_to @picture.reward
}
format.js {
render :json => @picture.reward.to_json(:include => :picture)
}
end
CSRF 检查被禁用。
当使用 Wireshark 比较来自浏览器和 iOS 的请求时,它们非常相似。
在此先感谢您的帮助。