Mi sono salvato una intera sessione di http request con firefox e il suo plugin livehttp.
ho replicato tutte le chiamate di tipo .get() con requests.get(), ed analizzato i vari risultati, estraendone i dati che mi interessavano. ora devo iniettare in una pagina due parametri, che nell'analisi dei request è fatto con il comando put: https://10.24.144.13/cucm-uds/user/myuser/number/1315f0a2-8c4f-480f-d4fd-766ca9072056/callforwardallsetting?dojo.preventCache=1417152184557 GET /cucm-uds/user/myuser/number/1315f0a2-8c4f-480f-d4fd-766ca9072056/callforwardallsetting?dojo.preventCache=1417152184557 HTTP/1.1 Host: 10.24.144.13 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0 Accept: application/json Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded X-Requested-With: XMLHttpRequest Referer: https://10.24.144.13/ucmuser/main Cookie: JSESSIONID=6D8FCEA894B9EF9F2CAAA72954C3A4CC; JSESSIONIDSSO=F6A9A1064FD9130CCE79BB0E436FDA82 Connection: keep-alive HTTP/1.1 200 OK Cache-Control: private Expires: Thu, 01 Jan 1970 01:00:00 CET X-Frame-Options: SAMEORIGIN Content-Type: application/json Transfer-Encoding: chunked Date: Fri, 28 Nov 2014 05:23:04 GMT ---------------------------------------------------------- https://10.24.144.13/cucm-uds/user/myuser/number/1315f0a2-8c4f-480f-d4fd-766ca9072056/callforwardallsetting PUT /cucm-uds/user/myuser/number/1315f0a2-8c4f-480f-d4fd-766ca9072056/callforwardallsetting HTTP/1.1 Host: 10.24.144.13 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: application/json; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: https://10.24.144.13/ucmuser/main Content-Length: 63 Cookie: JSESSIONID=6D8FCEA894B9EF9F2CAAA72954C3A4CC; JSESSIONIDSSO=F6A9A1064FD9130CCE79BB0E436FDA82 Connection: keep-alive {"voicemailenabled":"false", "destinationnumber":"00000000000000"} HTTP/1.1 200 OK Cache-Control: private Expires: Thu, 01 Jan 1970 01:00:00 CET X-Frame-Options: SAMEORIGIN Content-Type: text/plain Transfer-Encoding: chunked Date: Fri, 28 Nov 2014 05:23:41 GMT ---------------------------------------------------------- questo invece è il segmento di programma che dovrebbe replicare queste due chiamate: response = requests.get(urls['callforwardallsetting'], cookies=cookies, verify=False) assert response.status_code == requests.codes.ok response = requests.put(urls['callforwardallsetting'], fwd_param, cookies=cookies, verify=False) assert sulla seconda naturalmente fallisce. fwd_param = {'voicemailenabled': "false", 'destinationnumber': destination_number} dove destination_number è il numero passato alla funzione come parametro. i cookies sono corretti, perché fino alla chiamata prima del put funzionano... e il verify=false è perché purtroppo non è stato registrato da nessuna parte il certificato del sito interno. a quanto ho capito, in qualche modo put dovrebbe modificare fisicamente il file xml che io ho letto nella prima chiamata, inseredovi nei campi corretti i valori che io ho passato... questo è il file xml che ricevo dalla prima delle due chiamate: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <callforwardallsetting uri="https://10.24.144.13/cucm-uds/user/gasip3000/number/76d919d2-be6b-a781-f1ed-811dbd33aaff/callforwardallsetting" version="9.1.2" enabled="false"> <id>326bd07b-cce2-4071-9383-a7d1fab5e8d9</id> <voicemailenabled>false</voicemailenabled> <destinationnumber></destinationnumber> <datetimestamp>1423848593</datetimestamp> <callingsearchspace_cfa>096478cd-fc23-decd-aa98-16e7736534a0</callingsearchspace_cfa> <callingsearchspace_scfa xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <history uri="https://10.24.144.13/cucm-uds/user/myuser/number/76d919d2-be6b-a781-f1ed-811dbd33aaff/callforwardallsetting/history"/> </callforwardallsetting> il risultato della funzione, quando la lancio è il seguente: reponse.text ritorna la stringa: "Unsupported Media Type" assert response.status_code == requests.codes.ok AssertionError quindi è probabile che sia sbagliato il modo in cui passo i parametri? Tnx&Byez -- Gollum1 - http://www.gollumone.it Tesssssoro, dov'é il mio tessssoro... _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python