我正在尝试在仅使用Rails API的应用程序中上传文件。我正在使用rest-client gem。
我使用邮递员访问Rails API。在我的代码中,我需要将此文件上传到第三方API。
如何使用rest-client gem上传文件?
我每次都从其他客户端的宝石中走出错误。
“ 415不支持的媒体类型”
Postman
请求和文件上传参数在下面
Started PUT "/update_kyc/3233"
Parameters: {"identity_kyc_document_1"=>#<ActionDispatch::Http::UploadedFile:0x007f895dbcaf00 @tempfile=#<Tempfile:/var/folders/95/z56d5kd10_sb7s82b982fpjw0000gn/T/RackMultipart20180629-1656-107ht8x.jpeg>, @original_filename="test1.jpeg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"identity_kyc_document_1\"; filename=\"test1.jpeg\"\r\nContent-Type: image/jpeg\r\n">}
我的服务代码如下:
def update_request method, opts ={}
headers = set_request_header_update
payload = prepare_for_upload opts#encode_options opts
url = @base_uri + url_path(method)
begin
RestClient::Request.execute method: :put, url: url, payload: payload.to_json, headers: headers
rescue RestClient::ExceptionWithResponse => e
e.response
end
end
其他方法如下
def set_request_header_update
headers = {
:Authorization => @api_key,
# :content_type => 'multipart/mixed',
accept: :json,
multipart: true
}
end
def prepare_for_upload opts
data = { :file => File.new(opts[:identity_kyc_document_1].tempfile) }
end
我无法将文件发送到网址。网址有效。
如何从传入的参数中获取和使用上载的文件详细信息?
谢谢 阿吉斯