ruby-on-rails - Curl::Error::Partial File Error: 传输部分文件错误

标签 ruby-on-rails ruby curl

我正在尝试在 Rails 控制台中执行以下代码:

ce = Curl::Easy.new("http://www.homestolove.com.au/bathroom-profile-fresh-approach-2391")
ce.verbose=true
ce.perform

但我收到以下错误。谁能建议如何解决这个问题?看起来这个 url 返回响应的速度很慢。在文件传输完成之前,我们可以做些什么来阻止连接终止吗?

* Adding handle: conn: 0x95f3210
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x95f3210) send_pipe: 1, recv_pipe: 0
* About to connect() to www.homestolove.com.au port 80 (#0)
*   Trying 52.85.77.138...
* Connected to www.homestolove.com.au (52.85.77.138) port 80 (#0)
> GET /bathroom-profile-fresh-approach-2391 HTTP/1.1
Host: www.homestolove.com.au
Accept: */*

< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Content-Length: 717180
< Cache-Control: public, max-age=1800
< Cache-Control: no-cache="set-cookie"
< Date: Sat, 29 Oct 2016 06:22:49 GMT
< ETag: W/"af17c-wej92PccZYKK1ePeKXoQ1Q"
* Server nginx is not blacklisted
< Server: nginx
< Strict-Transport-Security: max-age=31536000; includeSubdomains
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: Express
< X-XSS-Protection: 1; mode=block
< Vary: Accept-Encoding,Accept-Encoding
< X-Cache: Miss from cloudfront
< Via: 1.1 94812f867206232855f09570ec52b557.cloudfront.net (CloudFront), 1.1 wsg.Lehi05
< X-Amz-Cf-Id: qiwFsn3d4lSmNZTSC_BVojcZmWjU1Toba7XagEiFCe-zlywo6GlkVw==
< Age: 2
< 
* transfer closed with 431831 bytes remaining to read
* Closing connection 0
Curl::Err::PartialFileError: Transferred a partial file
    from /opt/rails/test/shared/bundle/ruby/1.9.1/gems/curb-0.9.3/lib/curl/easy.rb:73:in `perform'
    from (irb):5
    from /opt/rails/test/shared/bundle/ruby/1.9.1/bundler/gems/rails-efa67857350e/railties/lib/rails/commands/console.rb:47:in `start'
    from /opt/rails/test/shared/bundle/ruby/1.9.1/bundler/gems/rails-efa67857350e/railties/lib/rails/commands/console.rb:8:in `start'
    from /opt/rails/test/shared/bundle/ruby/1.9.1/bundler/gems/rails-efa67857350e/railties/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

最佳答案

它似乎适用于 encoding 设置为 gzip

ce = Curl::Easy.new("http://www.homestolove.com.au/bathroom-profile-fresh-approach-2391")
ce.verbose = true
ce.encoding = 'gzip'
ce.perform

输出:

*   Trying 216.137.61.96...
* Connected to www.homestolove.com.au (216.137.61.96) port 80 (#0)
> GET /bathroom-profile-fresh-approach-2391 HTTP/1.1
Host: www.homestolove.com.au
Accept: */*
Accept-Encoding: gzip

< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: public, max-age=1800
< Cache-Control: no-cache="set-cookie"
< Content-Encoding: gzip
< Date: Sun, 06 Nov 2016 19:49:27 GMT
< ETag: W/"a7c31-QuyLkXEk3HhTu/KMM5QDNQ"
< Server: nginx
< Strict-Transport-Security: max-age=31536000; includeSubdomains
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: Express
< X-XSS-Protection: 1; mode=block
< Vary: Accept-Encoding
< Age: 162
< X-Cache: Hit from cloudfront
< Via: 1.1 e24fef4a7b03bd84e1e8d57f2471a84d.cloudfront.net (CloudFront)
< X-Amz-Cf-Id: 96AZ5p0ts5UZdPXTEpCk8S3wEQJk9a4vZD7vhY-8sXHX_NTyGSUouA==
<

关于ruby-on-rails - Curl::Error::Partial File Error: 传输部分文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40316684/

相关文章:

俄语的php问题

ruby-on-rails - 翻译 Rails Devise 错误消息

ruby-on-rails - 更新 HABTM 模型关联只会删除关联

ruby-on-rails - 有没有办法在辅助方法中缓存字符串片段?

ruby-on-rails - 尝试抓取网站时出现 Ruby SSL 错误

javascript - 我们可以模仿浏览器并使用 php 获取特定的网络请求 header 吗?

php - 奇怪的 cURL 错误 - WHMCS 中的 errno 104(代码 56)

ruby-on-rails - Rails - Rake 错误 : Library not loaded

ruby-on-rails - 通过 IMAP 在 Rails 中获取电子邮件

ruby-on-rails - bootstrap-sass显示错误