Czy ktoś wie, jak przeprowadzić podstawowe uwierzytelnianie za pomocą RestClient?Jak wykonać podstawowe uwierzytelnianie z programem RestClient?
Potrzebuję utworzyć prywatne repozytorium na GitHub za pośrednictwem ich RESTful API.
Czy ktoś wie, jak przeprowadzić podstawowe uwierzytelnianie za pomocą RestClient?Jak wykonać podstawowe uwierzytelnianie z programem RestClient?
Potrzebuję utworzyć prywatne repozytorium na GitHub za pośrednictwem ich RESTful API.
Wygląda na to, że z poziomu można określić użytkownika i hasło jako część obiektu zapytania.
Próbowałeś coś takiego:
r = Request.new({:user => "username", :password => "password"})
Także, jeśli spojrzeć w dół w sekcji skorupa ReadMe ma przykład określając go jako część restshell
.
$ restclient https://example.com user pass
>> delete '/private/resource'
Najprostszym sposobem jest umieszczanie szczegóły w URL:
RestClient.get "http://username:[email protected]"
Szukałem sposobu wykonywania uwierzytelniania bez konieczności inicjowania żądania RestClient :: Request. +1 za użycie metody RestClient.get. ALE nazwa użytkownika i hasło nie wymagają ucieczki? Wygląda na to, że nie jest tak łatwo, jak się wydaje. – AgostinoX
Co zrobić, jeśli moja nazwa użytkownika ma znak "@"? – Sai
... ale jeśli masz specjalne znaki, takie jak # w haśle, masz wyjątek: InvalidURIError: zły URI (nie jest identyfikatorem URI?) – territorial
Oto przykład kodu pracy, gdzie obsługują opcjonalne uwierzytelnianie podstawowe, ale nie wymagają od użytkownika i hasło zostać osadzony w URL:
def get_collection(path)
response = RestClient::Request.new(
:method => :get,
:url => "#{@my_url}/#{path}",
:user => @my_user,
:password => @my_pass,
:headers => { :accept => :json, :content_type => :json }
).execute
results = JSON.parse(response.to_str)
end
należy pamiętać, jeśli @my_user
@mypass
a nie instancja, to działa dobrze bez uwierzytelniania podstawowego.
Należy rozważyć uwzględnienie modułu w użyciu, aby to poprawić. na przykład 'RestClient :: Request' i dodanie więcej kontekstu, aby dać przykład, który podałeś w pełni funkcjonalnie. –