ruby on rails模拟HTTP请求错误发生:end of file reached

Posted slgkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby on rails模拟HTTP请求错误发生:end of file reached相关的知识,希望对你有一定的参考价值。

在文章 Ruby On Rails中REST API使用演示样例——基于云平台+云服务打造自己的在线翻译工具 中,利用ruby的Net::HTTP发起http请求訪问IBM Bluemix上的语言翻译服务时,提示:end of file reached

代码例如以下:

auth = "c9819718-4660-441c-9df7-07398950ea44:qUvrJPqwsgOx";
surl = "https://" + auth + "@gateway.watsonplatform.net/language-translation/api/v2/translate?source=en&target=es&text=" + @txt;
uri = URI.parse(surl);

begin #開始
	http = Net::HTTP.new(uri.host, uri.port)
	http.use_ssl = true
	request = Net::HTTP::Get.new(uri.request_uri)
	response = http.request(request)
	@result = "{\"text\":\"#{response.body}\"}";
rescue
	@result = "{\"error\":\"#{$!}!\"}";
end


看到这样的错误信息。刚開始以为 是语法的问题。但怎么也找不到问题;

后来注意到。URL是HTTPS开头,想到可能是它的问题,

经过搜索,果然是须要设置:http.use_ssl = true

设置之后,又出来新的问题:SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

以上是关于ruby on rails模拟HTTP请求错误发生:end of file reached的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ruby on Rails 的 HTTP GET 请求:OpenSSL::SSL::SSLError

如何使用 Ruby on Rails 发出 HTTP 请求?

Ruby on Rails 同时发出多个 HTTP 请求?

如何使用 Ruby on Rails 发出 HTTP 请求?

保存到数据库帖子,但在检查 Ruby on Rails 中的 http 请求之前

Ruby on Rails安装错误端口53