Utilizzo dei webservices del sito indicepa.gov.it

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.

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

2 Mi Piace

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

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.

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.

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

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.

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

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

1 Mi Piace

Alla fine sei riuscito??

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

Strano, ti rispondeva però …

In ogni caso, bene!

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

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

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

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.

1 Mi Piace

Ciao Roberto,
vado un po’ off-topic. Nella documentazione ufficiale è riportato quanto incollo sotto.

Si parla di richiesta REST/POST. Credo sia incompleta, e che ci sia da aggiungere che è da fare via form (come credo indicato nel tuo file YAML).

Intendo dire che una richiesta con httpie non va in REST/POST così

http POST http://example.com/posts/3 \
    name="John Doe" 

E va con

http --form POST http://example.com/posts/3 \
    name="John Doe" 

Grazie

image

Ciao @aborruso!

1- per la precisazione da integrare sulla documentazione ufficiale, magari @giorgialodi può segnalarla agli interessati in AgID;

2- se c’è qualche refuso in qcs che ho scritto io invece, fai pure PR e faccio il merge o segnalami il link.

Grazie per i tuoi ottimi contributi,
R.

2 Mi Piace

Buonasera a tutti, ho appen acreato il mio AUTH_ID, e provando con httpie ho lo stesso problema già segnalato e cioè auth_id non inviato.
AVete poi risolto in qualche modo?

Di seguito vi posto i test che ho fatto con httpie e la relativa risposta:

$ http --form POST https://www.indicepa.gov.it:443/public-ws/WS02_AOO.php AUTH_ID="XXXXXXX" COD_AMM="r_sicili"

http: error: ConnectionError: HTTPSConnectionPool(host='www.indicepa.gov.it', port=443): Max retries exceeded with url: /public-ws/WS02_AOO.php (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f682ac57518>: Failed to establish a new connection: [Errno -2] Name or service not known',)) while doing POST request to URL: https://www.indicepa.gov.it:443/public-ws/WS02_AOO.php
$ http --form POST https://www.indicepa.gov.it:443/public-ws/WS02_AOO.php AUTH_ID="TYKWSKIZ" COD_AMM="r_sicili";

Grazie a chi vorrà condividere ed aiutarci in merito
Saluti
Denis

Ciao @MaDe_Solutions ti confermo che tutto funziona regolarmente https://medium.com/@aborruso/ciao-made-solutions-italy-ti-confermo-che-funziona-perfettamente-con-ad-esempio-il-comando-409fef69f5ad

1 Mi Piace