htparty和文件上传

时间:2018-06-25 11:50:38

标签: ruby ruby-on-rails-4 rubygems rails-api

我正在使用Rails api only应用程序。轨道5和红宝石2.4

我的要求是我提出了一个更新请求,该请求会将文件发送到第三方api。我正在使用邮递员发出请求。

我同样使用Httparty宝石。

我的参数在下面

<ActionController::Parameters {"identity_kyc_doc_1"=>#<ActionDispatch::Http::UploadedFile:0x007fed5d113b48 @tempfile=#<Tempfile:/var/folders/95/z56d5kd10_sb7s82b982fpjw0000gn/T/RackMultipart20180625-2016-1l5rgbn.jpeg>, @original_filename="test1.jpeg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"identity_kyc_doc_1\"; filename=\"test1.jpeg\"\r\nContent-Type: image/jpeg\r\n">, "controller"=>"simplex", "action"=>"update_kyc"} permitted: true>

和控制器代码在下面调用服务和服务动作。

def update_request method, opts ={}
        headers = set_request_header

        post_data = opts#encode_options opts
        byebug
        url = @base_uri + url_path(method)
        r = self.class.put(url, { headers: headers, body: post_data }).parsed_response
        r['error'].empty? ? r['result'] : r['error']
    end

,即时消息低于错误。使用byebug捕获错误。

(byebug) r = self.class.put(url, { headers: headers, body: post_data })
*** NoMethodError Exception: undefined method `flat_map' for #<ActionController::Parameters:0x007fed5d111b90>

我在网上某处看到httparty没有上传文件。那怎么办?

我尝试通过rest-client gem使用RestClient。但是我对其余的客户端gem却报错了。

Completed 500 Internal Server Error in 1934ms (ActiveRecord: 0.0ms)
RestClient::NotFound (404 Not Found):

我已经安装了gem,并且还为gem添加了require声明。到目前为止没有运气。

感谢您的帮助。 谢谢

0 个答案:

没有答案