2017-07-14 4 views
1

ich eine Reihe von Daten auf die POST-Methode übergeben:Python-Anfragen verbergen die in der URL übergebenen Parameter

url = 'https://exmaple.com/gate' 
    payload = { 
     'Client': '4444', 
     'Total': '10.99', 
     'Currency': 'EUR', 
     'Order': '12345', 
    r = requests.post(url, params=payload) 
    response = '$window.location.href="{}";'.format(r.url) 
    return response 

Dann bekomme ich diese URL:

https://exmaple.com/gate?Client=4444&Total=10.99&Currency=EUR&Order=12345 

Wie kann ich die Parameter verbergen in der URL übergeben?

+0

Warum möchten Sie sie verstecken? –

+1

Wahrscheinlich möchten Sie anstelle von ['params']' data = payload' verwenden (http://docs.python-requests.org/en/master/user/quickstart/#passing-parameters-in-urls). –

+0

@Alex Lucaci, ich muss es verstecken, weil es Operator benötigt. – MalT

Antwort

1

Je nachdem, ob die API es akzeptiert, sollten Sie die Parameter im Körper des Antrags, nicht als params der URL, wie diese an:

r = requests.post(url, data=payload)

Wenn man es so tun, niemand (normalerweise) können die von Ihnen gesendeten Daten sehen

+0

Wenn ich: r = requests.post (URL, Daten = Nutzlast), leitet es mich zu einer sauberen URL aber ohne Daten per Post gesendet. – MalT

+0

Das bedeutet, dass die API nicht für den Anwendungsfall des Verbergens der von Ihnen gesendeten Daten entwickelt wurde. – Igor

+0

Diese API dient zum Verbergen von Daten in der URL. Es funktioniert in PHP, aber ich kann nicht mit Python umgehen. – MalT

Verwandte Themen