2017-12-13 4 views
1

Ich bin ein Anfänger und ich möchte eine Nim-Anwendung schreiben, die einige Daten von einer internen Website verarbeitet. Für den Zugriff auf diese Site ist eine Standardauthentifizierung (Benutzername, Passwort) erforderlich.Wie authentifiziere ich mich mit dem Nim-httpclient-Modul, um HTML abzurufen?

Eine Arbeits Python Lösung ist:

response = requests.get('https://internal:PORT/page', 
         auth=('user', 'passwd'), 
         verify=False) # this is vital 

Basierend auf der nim doc über Httpclient und die Module Quellcode, wo es heißt, dass man einen Proxy als Argument für eine der Funktionen verwenden könnte, ich habe etwas in dieser Richtung versucht:

var 
    client = newHttpClient() 
    prox = newProxy("https://internal:PORT/page", "user:passwd") 

let response = client.getContent(prox) # Error: type mismatch 

Die Lösung wahrscheinlich ist sehr offensichtlich, aber ich bin aus Ideen auf wie zu authentifizieren.

Wenn jemand helfen könnte, würde das sehr geschätzt werden!

Antwort

1

Basic Auth ist nur eine "Authorization" -Kopfzeile mit Wert "Basic" + base64 (Benutzername + ":" + Passwort). Äquivalent in nim:

import httpclient, base64 
var 
    client = newHttpClient() 
var username = ... 
var password = ... 
client.headers["Authorization"] = "Basic " & base64.encode(username & ":" & password) 
# ... send request with the client 
+1

Arbeitete wie ein Charme. Ich werde mehr Nachforschungen über Header und dergleichen machen, um als Entwickler zu verbessern. Vielen Dank! –

Verwandte Themen