Forum >> Principianti >> COME RICHIAMO QUESTO URL CON LA FUNZIONE POST

Pagina: 1

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 :party:
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)
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





Prova cosi.





payload = {'userid': 'utente1', 'password': 'prova'}







ho già provato ma nemmeno così va
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.....

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.