2015-10-20 4 views

ответ

0

Вы можете сделать это с Hurley.

Сначала установите перл:

$ gem install hurley 

А потом запустить этот один:

require "hurley" 
require "json" 

client = Hurley::Client.new "https://api.github.com" 

repository = { 
    username: "repo_username", 
    name: "repo_name", 
} 

authentication = { 
    username: "XXX", 
    password: "YYY", 
} 

response = client.get("/repos/#{repository[:username]}/#{repository[:name]}/forks") do |req| 
    req.header[:accept] = "application/vnd.github.preview+json" 
    req.url.user = authentication[:username] 
    req.url.password = authentication[:password] 
end 

puts JSON.parse(response.body) 
+0

спасибо @olistik –

0

Взгляните на HttpParty это поможет вам отправить GET, POST, PUT, DELETE Запросы на удаленный сервер, Вы можете отправить Authentication и отправить URL Data или Post data.

В вашем случае это будет после добавления Gem к вашему Gem Файл:

response = HTTParty.get("https://api.github.com/repos/USERNAME/REPOSITORY/forks", 
         body:{}, 
         basic_auth: {username: 'USERNAME', password: 'PASSWORD'} 
         ) 

if response && response.body 
    # parse to json if you know that the responce is json otherwise work with the response whatever you want to do. 
    json=JSON.parse(response.body) 
end 

Тело является хэш, если вы хотите послать какие-либо данные в вашем случае его пустые нет данных для отправки, и Basic Auth в отправьте username and password, вы должны заменить USERNAME и PASSWORD с вашим логином и паролем.

+0

поблагодарить u @ mohamed-ibrahim –

0

Избегая внешних зависимостей, вы можете также придерживаться простого старого Net::HTTP:

require "net/http" 

username = "USERNAME" 
password = "PASSWORD" 
repository = "REPOSITORY" 

url = "https://api.github.com/repos/#{username}/#{repository}/forks" 
uri = URI.parse(url) 
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http| 
    request = Net::HTTP::Head.new(uri) 
    request.basic_auth(username, password) 
    response = http.request(request) 
    puts response.to_hash.inspect 
end 

и если вы включили ТФК (двухфакторная аутентификация), как следует, вы можете создать маркер доступа как описано here и использовать его вместо пароля.

Смежные вопросы