2010-09-11 16 views

Odpowiedz

15

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' 
+0

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. –

40

Najprostszym sposobem jest umieszczanie szczegóły w URL:

RestClient.get "http://username:[email protected]" 
+0

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

+2

Co zrobić, jeśli moja nazwa użytkownika ma znak "@"? – Sai

+0

... ale jeśli masz specjalne znaki, takie jak # w haśle, masz wyjątek: InvalidURIError: zły URI (nie jest identyfikatorem URI?) – territorial

28

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.

Powiązane problemy