【发布时间】:2016-03-02 03:37:27
【问题描述】:
我正在使用faraday 处理对内部 API 的一些请求。 API 端点使用 CSRF 令牌,所以我也使用 faraday-cookie_jar。
对于几个 API 端点,它们需要 :multipart 请求。其他人没有。
问题
有没有什么方法可以使用相同的Connection 对象,但是切换你是在做:multipart 还是:url_encoded 请求?
目前,我必须使用两个连接,具体取决于我提出的请求类型。在连接完成至少 1 个请求后,您似乎无法更改连接的请求方法。
@connection = Faraday.new(url: 'http://localhost:3000') do |faraday|
faraday.request :url_encoded
faraday.use :cookie_jar
faraday.adapter Faraday.default_adapter
end
@connection.get '/something'
# try to change to :multipart
@connection.request :multipart # => Faraday::RackBuilder::StackLocked: can't modify middleware stack after making a request
它似乎不允许您在提出请求后切换。我知道您可以通过传递一个块来为每个请求本身修改一下请求,但我似乎找不到在哪里修改以切换到其中的:multipart。
提前致谢。
【问题讨论】: