Forum
>>
Principianti
>>
COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da dandi98 |
2018-06-20 00:13:48 - COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
Buonasera, vi scrivo perché sono giorni che non riesco a capire come richiamare questo url in modo corretto con la funzione post.
Devo inviare questo url con la funzione post: http://admin:secret@example.com/ocs/v1.php/cloud/users -d userid="Frank" -d password="frankspassword" La prima parte dell'url la lancio con questo script import requests r = requests.post('http://admin:secret@example.com/ocs/v1.php/cloud/users') ora per comunicare questi dati con la seconda parte dell'url : -d userid="Frank" -d password="frankspassword" come devo fare ? grazie in anticipo |
|
Scritto da Aprimus |
2018-06-21 09:52:12 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
Prova a passare un dict con le credenziali in questo modo.
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.post("http://httpbin.org/post", data=payload) |
|
Scritto da dandi98 |
2018-06-21 12:30:31 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
Ciao Aprimus, grazie per la risposta saresti cosi gentile da farmi un esempio pratico di come creare il dizionario con questa struttura qui:
-d userid="Frank" -d password="frankspassword" perché io mi perdo proprio nella struttura del dizionario ho provato a mettere su questo script con i suggerimenti che mi hai dato: import requests payload = {'userid=':'utente1','password=':'prova'} r = requests.post('http://admin:secret@example.com/ocs/v1.php/cloud/users', data=payload) r.raise_for_status() print(r.text) ed il risultato è stato questo File "/Users/utente/Documents/API_NEXTCLOUD.py", line 8, in <module> r.raise_for_status() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/models.py", line 935, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: http://www.example.com/ocs/v1.php/cloud/users |
|
Scritto da Aprimus |
2018-06-21 12:46:32 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
Prova cosi.
payload = {'userid': 'utente1', 'password': 'prova'} |
|
Scritto da dandi98 |
2018-06-21 13:00:49 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
ho già provato ma nemmeno così va
|
|
Scritto da Aprimus |
2018-06-21 13:46:28 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
fai una prova del genere:
import requests credentials = dict(user_id='frank', password='1234') url = 'http://admin:secret@example.com/ocs/v1.php/cloud/users -d userid="{user_id}" -d password="{password}"' r = requests.post(url.format(**credentials)) Non ottimale..... |
|
Scritto da dandi98 |
2018-06-21 14:07:24 - Re: COME RICHIAMO QUESTO URL CON LA FUNZIONE POST
|
ho applicato l'esempio che mi hai fatto
import requests credentials = dict(user_id='frank', password='1234') url = 'http://admin:secret@example.com/ocs/v1.php/cloud/users -d userid="{user_id}" -d password="{password}"' r = requests.post(url.format(**credentials)) r.raise_for_status() r.text lo script non ha errore ma non succede nulla PS : Mi scuso per la domanda ma sono ancora acerbo in python ma questo comando inviato tutto in formato stringa ha senso logico ? come fa a prendere i valori dal dizionario se letto come stringa ? Grazie mille per l'aiuto che mi stai dando url = 'http://admin:secret@example.com/ocs/v1.php/cloud/users -d userid="{user_id}" -d password="{password}"' --- Ultima modifica di dandi98 in data 2018-06-21 14:08:11 --- |
Pagina: 1
Esegui il login per scrivere una risposta.