2014-07-06 2 views
3

`HTTPS URL을하지만 난 항상 오류 메시지가 ... 내 한 줄의 코드가나는 역 따옴표를 통해 루비에서 호출 다른 결과 말림`곱슬 곱슬 <url> 내가 액세스 할 수 곱슬 곱슬 사용하고자하는

`curl https://www.google.com` 

있다가 하지만 내가 달릴 때

"curl: (1) Protocol https not supported or disabled in libcurl". 

어쨌든 나는 명령 프롬프트에서 curl을 수동으로 호출 해 봅니다. 정상적으로 작동하고 있습니다. 그래서 나는

C:>curl https://www.google.com 

... 시도하고 내가 할 수 있습니다 .. 지원 SSL입니다 이미 컬 버전 7.21.7을 다운로드 한

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<TITLE>302 Moved</TITLE></HEAD><BODY> 
<H1>302 Moved</H1> 
The document has moved 
<A HREF="https://www.google.co.th/?gws_rd=cr&amp;ei=FAe5U62VBMWdugSNvoHIAg">here</A>. 
</BODY></HTML> 

참고하지만, 난 여전히 같은 오류가 있습니다.

조언이 있으십니까?

업데이트 open3을 사용해 봅니다. 그것은 sitll 작동하지 않았다하지만이 시간이 컬을 보여줍니다 HTTPS

irb(main):001:0> require 'open3' 
=> true 
irb(main):002:0> cmd = 'curl https:\\rubygems.org' 
=> "curl https:\\rubygems.org" 
irb(main):003:0> Open3.popen3(cmd) do |stdin, stdout, stderr, wait_hr| 
irb(main):004:1* puts "stdout is: " + stdout.read 
irb(main):005:1> puts "stderr is: " + stderr.read 
irb(main):006:1> end 
stdout is: 
stderr is: % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 

    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
    0  0 0  0 0  0  0  0 --:--:-- 0:00:01 --:--:--  0 
    0  0 0  0 0  0  0  0 --:--:-- 0:00:02 --:--:--  0curl: (6) Could not resolve host: https 
=> nil 
+0

다른 디렉토리에서 Ruby (file 또는 irb/pry) 및 * normal 명령을 실행할 수 있습니까? 디렉토리를 예를 들어 C로 변경하고 irb/pry를 실행하여 백틱에서이 명령을 시도하십시오. 어쨌든, 당신의 OS에 따라 (나는 당신이 윈도우를 사용하고 있다고 생각한다) 루비에서 다른 방법을 시도해 볼 수있다 : http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby/ 내가 기억하는 공정한 마지막 2 또는 3 , * nix만이었지만 잘못되었을 수 있습니다. –

+0

예. 같은 지침서에서 스크립트와 수동 명령을 실행합니다. 나는 또한 시스템 ('curl ')과 exec ('curl ) 모두 여전히 같은 오류 메시지를 표시합니다. 하지만 https 대신 http로 변경하면 루비를 실행할 때 html body를 얻을 수 있습니다. – worrawut

+0

다음을 시도해보십시오.'''cmd/c curl https : //www.google.com \'' –

답변

1

언젠가 지출 후, 나는 내 루비는 항상 C에서 curl.exe를 호출 관찰 : (6) 호스트를 확인할 수 없습니다 \ WINDOWS \ SysWOW64와를 (왜 그런지 모르겠다.) 그리고 그것은 v7.32.0 x86_64-pc-win32로 말린다. 나는 이것이 ssl enable을 가지고 있지 않다고 추측한다. C : \ Windows \ win32에있는 다른 curl.exe는 vs.21.7이며 ssl과 함께 있다는 것을 알고 있습니다. -> 이것은 의존성 결과가있는 근본 원인이어야합니다.

결국 나는 ssl, v7.37.0을 사용하여 최신 버전의 curl을 다운로드하여 설치합니다. 이제 명령 줄에서 백틱 또는 수동 방식으로 실행해도 괜찮습니다. 문제가 해결되었습니다.

관련 문제