如何使用ruby在http响应中读取附件?

时间:2018-03-15 09:23:48

标签: ruby http httpresponse attachment

我是ruby编程的新手。

我已经了解了ruby中的文件附件。在此我了解了如何在http请求中附加文件。但我被搜索了如何在http响应中本地读取和保存附加文件。但是我没有得到任何东西。

更新: -

从ruby脚本我向php程序发出http请求。

请求来源是,

payload={"id":"1004"}
uri = URI.parse("https://example.com/test.php")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request.body = payload.to_json
# request.use_ssl = true
# request.verify_mode = OpenSSL::SSL::VERIFY_NONE 

# logger.info "request body is #{request.body.inspect}"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE,:read_timeout => 25 ) { |http|  http.request(request) }

从test.php验证id是否有效,然后在响应中附加文件内容。

这个来源是,

$filename="test.mp3";
if (file_exists($filename)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($filename));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($filename));
    ob_clean();
    flush();
    readfile($filename);
#    exit;
}

我想要的是,在http请求的ruby脚本中,将从服务器收到一个响应。从该响应中,我提取了文件内容并将其存储在本地。

我被搜索了如何处理文件内容作为响应。但我没有得到任何东西。

请帮我在红宝石中如何做到这一点。

0 个答案:

没有答案