我明白了如何使用与Ruby的基本身份验证,使一个HTTP请求其他客户端
response = RestClient::Request.new(:method => :get, :url => @base_url + path, :user => @sid, :password => @token).execute
如何上传文件的多表单数据
RestClient.post '/data', :myfile => File.new("/path/to/image.jpg", 'rb')
但我似乎无法弄清楚如何将两个以一个文件发布到这需要基本身份验证的服务器相结合。 有谁知道什么是创造这一要求的最好方法是什么?
如何使用RestClient::Payload
与RestClient::Request
......举一个例子:
request = RestClient::Request.new(
:method => :post,
:url => '/data',
:user => @sid,
:password => @token,
:payload => {
:multipart => true,
:file => File.new("/path/to/image.jpg", 'rb')
})
response = request.execute
下面是一个文件和一些JSON数据为例:
require 'rest-client'
payload = {
:multipart => true,
:file => File.new('/path/to/file', 'rb'),
:data => {foo: {bar: true}}.to_json
}
r = RestClient.post(url, payload, :authorization => token)
RESTClient实现API似乎已经改变。 下面是一个使用基本身份验证上传文件的最新方法:
response = RestClient::Request.execute(
method: :post,
url: url,
user: 'username',
password: 'password',
timeout: 600, # Optional
payload: {
multipart: true,
file: File.new('/path/to/file, 'rb')
}
)
最新最好的方法可能是:该链接是在这里输入链接的描述
RestClient.post( url,
{
:transfer => {
:path => '/foo/bar',
:owner => 'that_guy',
:group => 'those_guys'
},
:upload => {
:file => File.new(path, 'rb')
}
})
文章来源: Ruby rest-client file upload as multipart form data with basic authenticaion