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.
  