menu di navigazione del network

Utilizzo dei webservices del sito indicepa.gov.it


(Giuseppe Ricci) #1

Salve,

sto provando a interrogare i webservices del sito http://www.indicepa.gov.it/ usando come url

http://www.indicepa.gov.it/public-ws/WS05_AMM.php?COD_AMM=cciaa_ba&AUTH_ID=Mio_ID_Webservices

mettendolo sia nel browser sia in un client sviluppato in python ma ricevo sempre questo risultato:

{“cod_err”:900,“desc_err”:“Parametro AUTH_ID mancante”,“num_items”:0}

ma se io passo il mio id di accesso ai webservice!
Come posso risolvere?
Grazie.


(Andrea Borruso) #2

Ciao Giuseppe,
il mio client di riferimento è httpie.

Con

http -f "http://www.indicepa.gov.it/public-ws/WS05_AMM.php" AUTH_ID='VQKXXXXX' COD_AMM='cciaa_ba'

ottengo

{
    "data": {
        "acronimo": "",
        "cap": "70121",
        "categoria": "Camere di Commercio, Industria, Artigianato e Agricoltura e loro Unioni Regionali",
        "cf": "80000350720",
        "cod_amm": "cciaa_ba",
        "cogn_resp": "Partipilo",
        "comune": "Bari",
        "data_accreditamento": "2010-06-01",
        "des_amm": "Camera di Commercio, Industria, Artigianato e Agricoltura di Bari",
        "indirizzo": "Corso Cavour, 2",
        "liv_accessibili": 0,
        "mail1": "cciaa@ba.legalmail.camcom.it",
        "mail2": "segretario.generale@ba.camcom.it",
        "mail3": "",
        "mail4": "",
        "mail5": "",
        "nome_resp": "Angela Patrizia",
        "provincia": "BA",
        "referenti": [
            {
                "cogn_ref": "Partipilo",
                "nome_ref": "Angela Patrizia"
            }
        ],
        "regione": "Puglia",
        "sito_istituzionale": "www.ba.camcom.it",
        "tipologia": "Pubbliche Amministrazioni",
        "titolo_resp": "Segretario Generale"
    },
    "result": {
        "cod_err": 0,
        "desc_err": "",
        "num_items": 1
    }
}

Saluti


(Roberto_Boffelli_lavoro) #3

Salve,
scusi se mi intrometto però:

  1. solitamente la AUTH_ID o cose del genere è meglio tenerle nascoste
  2. ma nell’url da lei postato usa la sua AUTH_ID (cioè sostituendo la parte con la sua chiave codice) oppure lascia

??? perché ovviamente sarebbe quello un possibile errore
quindi ovviamente va sostituito con “VQKXXXXX”

  1. provi ad inviare il parametro AUTH_ID come primo parametro e veda se le torna ancora
    l’errore

  2. in ultimo (se non ricordo male) il php accede ai parametri tramite sia $GET che $POST …
    quindi se non funziona in GET usi un altro sistema e li invii come POST

ovviamente sono solo idee io non sono del servizio tecnico diretto
buona giornata


(Giuseppe Ricci) #4

ciao grazie per le indicazioni.
@aborruso ho visto il tuo client però vorrei utilizzare la libreria requests senza installare altro.
@rblavoro possiamo, penso, darci tranquillamente del tu su questo forum…si certo la chiave la sostituisco con il suo valore effettivo. Purtroppo anche se passo al browser questo url
http://www.indicepa.gov.it/public-ws/WS07_EMAIL.php?AUTH_ID=mid_chiave_id
mi da sempre lo stesso errore:
{“cod_err”:900,“desc_err”:“Parametro AUTH_ID mancante”,“num_items”:0}
Ho inviato una richiesta di assistenza ma mi sa che ce ne vorrà di tempo prima che mi rispondano.
Grazie.


(Andrea Borruso) #5

Puoi usare anche request, httpie è un libreira standard. L’importante è inviare i dati in POST come form request.
Ed è per questo che non puoi farlo da browser.


(Roberto_Boffelli_lavoro) #6

Grazie mille Giuseppe,

bhè, purtroppo non è nel mio stile, ma grazie ci proverò (sinceramente anche a me

la troppa formalità inizia un poco a stufarmi, meglio una via di mezzo)

Visto che stamattina ‘ho poco da fare’ e cmq per me è esercizio informatico

sono a chiederti se mi dai il permesso di utilizzare la tua “AUTH_ID” per fare qualche

prova …ovviamente cercando di non fare danni (solo per cercare il possibile problema)

buona giornata

Roberto


(Giuseppe Ricci) #7

La storia inizia a farsi ‘brutta’: in questo modo:

data = {‘AUTH_ID’:‘mio_codice’, ‘COD_AMM’: ‘cciaa_ba’}

r = requests.post('http://www.indicepa.gov.it/public-ws/WS05_AMM.php', data)
statusr=r.status_code

ricevo uno stato 200 ma nel print del text r.text
ricevo il messaggio che il browser deve essere aggiornato e deve avere abilitato javascript.


(Andrea Borruso) #8

A me va.

Ho usato

import requests

url = "http://www.indicepa.gov.it/public-ws/WS05_AMM.php"

payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"AUTH_ID\"\r\n\r\nILTUOAUTHID\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"COD_AMM\"\r\n\r\nILCODICEDELCOMUNE\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    'Cache-Control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Per stamattina sono comunque out


(Giuseppe Ricci) #9

Grazie @aborruso provo così come hai detto.
Sembra essere un problema di javascript ma nel mio browser è abilitato.


(Andrea Borruso) #10

Alla fine sei riuscito??


(Giuseppe Ricci) #11

si…la mia macchina virtuale non aveva accesso a internet…c’è un firewall…
grazie a tutti per l’aiuto!


(Andrea Borruso) #12

Strano, ti rispondeva però …

In ogni caso, bene!


(Antonio Moretti) #13

ciao, a me evidentemente manca qualcosa… il codice per la ricerca a mezzo codice fiscale

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.indicepa.gov.it/public-ws/WS01_SFE_CF.php?AUTH_ID=xxxxxxxx;CF=01234567890");
        
        request.Method = "GET";
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        if (response.StatusCode == HttpStatusCode.OK)
        {
           
            long a = response.ContentLength;
            string b = response.ContentType;
            Stream responseStream = response.GetResponseStream();
           
            string c = StreamToString(responseStream);
            
        }
        response.Close();

continua a rispondere:

{“cod_err”:900,“desc_err”:“Parametro AUTH_ID mancante”,“num_items”:0}

ho provato anche in POST;
cosa mi manca ?

grazie


(Giuseppe Ricci) #14

ciao @antonio_moretti creo che nella call tra l’auth_id e il cf non vada un ; ma un & !


(Antonio Moretti) #15

ciao Giuseppe, grazie dell’indicazione ma il problema non è &.
Altre indicazioni ? grazie


(Roberto Polli) #16

Ciao a tutti. Qui trovate una bozza delle specifiche IndicePA in formato OpenAPI.

E’ possibile utilizzare un render di specifiche per interrogare l’archivio e/o costruire un client su di esse.

Gradito feedback.