Richiesta e risposta viaggiano come testo UTF-8 compresso gzip, senza altre codifiche. Il formato del testo è JSON o XML, scelto con il parametro serialize.
La chiamata HTTP
| Elemento | Valore |
|---|
| Metodo | POST |
| Corpo | la richiesta serializzata in UTF-8 e compressa gzip, così com'è (niente Base64, niente form) |
| Content-Type | application/octet-stream |
| Content-Encoding | gzip |
| Accept-Encoding | gzip |
| Risposta | UTF-8 compresso gzip, con Content-Encoding: gzip e Content-Type application/json; charset=utf-8 oppure application/xml; charset=utf-8 |
| Tempo massimo | le letture grandi possono durare: imposta un timeout ampio, nell'ordine dei minuti (la libreria .NET usa 6.000 secondi) |
Il server riconosce il gzip dai primi due byte (1F 8B). Se un proxy ha già decompresso il corpo, il testo in chiaro viene accettato lo stesso; è una tolleranza, non un'alternativa: invia sempre il corpo compresso. Molte librerie HTTP decomprimono la risposta da sole quando vedono Content-Encoding: gzip; se la tua non lo fa, decomprimila tu.
Regole del JSON
| Elemento | Regola |
|---|
| Nomi dei campi | Gli stessi nomi delle proprietà delle classi (DataOperation, ObjectListProduct, Codice...). In lettura maiuscole e minuscole non contano; i campi sconosciuti vengono ignorati. |
| Campi omessi | Assumono il valore predefinito della classe, indicato in ogni pagina dei tipi. Attenzione: in un aggiornamento un campo omesso sovrascrive il valore salvato con il predefinito. |
| Enumerazioni | Il server le scrive come numeri ("TypeObject": 19). In invio sono accettati sia il numero sia il nome ("TypeObject": "PRODUCT"). |
| Date | ISO 8601, come "2026-03-15T00:00:00". Il server scrive il formato esteso 2026-03-15T00:00:00.0000000. La data vuota è 0001-01-01T00:00:00. |
| Numeri decimali | Con il punto: 12.5. Mai la virgola, mai tra virgolette. |
| Booleani | true / false. |
| Valori null | Ammessi per oggetti ed elenchi; per i testi è meglio la stringa vuota. |
| Caratteri | Scrivi accenti e simboli direttamente in UTF-8. Le entità numeriche XML (&#x...;) vengono rimosse prima di interpretare la richiesta. |
| ObjectList | Nella risposta JSON può comparire anche ObjectList, che ripete la lista del tipo richiesto: puoi ignorarlo. In invio non usarlo: compila la lista tipizzata, per esempio ObjectListBrand. |
Regole dell'XML
L'XML è quello standard del serializzatore .NET: l'elemento radice è <WebServiceRequest>, ogni proprietà è un elemento con lo stesso nome, le liste contengono un elemento per record con il nome della classe, le enumerazioni si scrivono per nome (<TypeObject>BRAND</TypeObject>), le date in ISO 8601, i decimali con il punto, i booleani true/false.
XML · un marchio<?xml version="1.0" encoding="utf-8"?>
<WebServiceRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DataOperation>INSERTORMODIFY</DataOperation>
<SQLFilter />
<GuidPC>gestionale-01</GuidPC>
<TypeObject>BRAND</TypeObject>
<AllInsert>false</AllInsert>
<ObjectListBrand>
<Brand>
<Codice>ACME</Codice>
<Descrizione>Acme</Descrizione>
<DescrizioneDettagliata />
<SitoWEB>https://www.example.com</SitoWEB>
<Obsoleto>false</Obsoleto>
<Ordinamento>10</Ordinamento>
</Brand>
</ObjectListBrand>
</WebServiceRequest>
JSON · la stessa richiesta{
"DataOperation": 0,
"SQLFilter": "",
"GuidPC": "gestionale-01",
"TypeObject": 0,
"AllInsert": false,
"ObjectListBrand": [
{ "Codice": "ACME", "Descrizione": "Acme", "SitoWEB": "https://www.example.com", "Obsoleto": false, "Ordinamento": 10 }
]
}