Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相当于Ruby的旋度?_Ruby_Curl - Fatal编程技术网

相当于Ruby的旋度?

相当于Ruby的旋度?,ruby,curl,Ruby,Curl,Ruby有卷曲库吗 并为Ruby提供cURL绑定。使用和 访问需要HTTP身份验证的站点/页面/资源。如果您不喜欢低级别的,还有一个,它构建在Curl::Multi之上。还有一个,它是一个非常高级的web抓取客户端,并且使用Nokogiri进行HTML解析。您还可以查看一下是一个围绕路缘的包装器,它反过来使用libcurl。加铺fu比加铺fu提供了什么?只是大量的语法糖分——但这通常是您所需要的。添加一个更新的答案,是另一个使用libcurl的Ruby库,它支持并行线程和许多curl功能。我将H

Ruby有卷曲库吗

并为Ruby提供cURL绑定。

使用和


访问需要HTTP身份验证的站点/页面/资源。

如果您不喜欢低级别的,还有一个,它构建在Curl::Multi之上。

还有一个,它是一个非常高级的web抓取客户端,并且使用Nokogiri进行HTML解析。

您还可以查看一下是一个围绕路缘的包装器,它反过来使用libcurl。加铺fu比加铺fu提供了什么?只是大量的语法糖分——但这通常是您所需要的。

添加一个更新的答案,是另一个使用libcurl的Ruby库,它支持并行线程和许多curl功能。我将HTTPClient和Typhous用于任何非平凡的应用程序。

是一个很好的页面,可以帮助您对各种客户端做出决策。

gem是OpenURI的“替代品”:

# first do gem install eat
require 'eat'
eat('http://yahoo.com')                 #=> String
eat('/home/seamus/foo.txt')             #=> String
eat('file:///home/seamus/foo.txt')      #=> String
它在引擎盖下使用。它还有一些选择:

eat('http://yahoo.com', :timeout => 10)                   # timeout after 10 seconds
eat('http://yahoo.com', :limit => 1024)                   # only read the first 1024 chars
eat('https://yahoo.com', :openssl_verify_mode => 'none')  # don't bother verifying SSL certificate

这是我写的一个小程序,用来获取一些文件

base = "http://media.pragprog.com/titles/ruby3/code/samples/tutthreads_"

for i in 1..50

  url = "#{ base }#{ i }.rb"
  file = "tutthreads_#{i}.rb"

  File.open(file, 'w') do |f|   
    system "curl -o #{f.path} #{url}"
  end

end

我知道它可以更雄辩一点,但它符合它的目的。过来看。我今天只是拼凑了一下,因为我厌倦了去每个URL获取源代码下载中未包含的书的代码。

如果您知道如何将请求编写为
curl
命令,那么有一个在线工具可以将其转换为ruby(2.0+)代码:


目前,它知道以下选项:
-d/--data
-H/--header
-I/--head
-u/--user
-url
-X/--request
。是的。

说明可能太明显了,勾号也可以在Ruby中执行shell代码。假设您的Ruby代码在具有
curl
的shell中运行:

puts `curl http://www.google.com?q=hello`


老实说,如果我看到一个库在内部使用开放uri,我就不会使用那个库。它是一个有严重缺陷的库,构建在一个有严重缺陷的URI解析器之上。它可以在IRB中使用,仅此而已。@Sporkmonger:好吧,这就是我们所拥有的-你有什么建议,原始网络::HTTP?使用网络::HTTP或用户或抑制或其他答案中提到的任何其他库。我无法理解这个答案是如何被投票或接受的。可能是因为开放式uri是标准库的一部分?Net::HTTP和开放式uri在处理HTTP的方式上都是出了名的糟糕。我无法让它工作`require':无法加载这样的文件--eat(LoadError)
puts `curl http://www.google.com?q=hello`
result = `
  curl -X POST https://www.myurl.com/users \
  -d "name=pat" \
  -d "age=21"
` 
puts result