

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invio di richieste HTTP ad Amazon SWF
<a name="UsingJSON-swf"></a>

Se non utilizzi uno di questi AWS SDKs, puoi eseguire operazioni di Amazon Simple Workflow Service (Amazon SWF) su HTTP utilizzando il metodo di richiesta POST. Per utilizzare il metodo POST devi specificare l'operazione nell'intestazione della richiesta e fornire i dati per l'operazione nel formato JSON nel corpo della richiesta. 

## Contenuti nell'intestazione HTTP
<a name="HTTPHeader"></a>

Amazon SWF richiede le seguenti informazioni nell'intestazione di una richiesta HTTP:
+ `host`L'endpoint Amazon SWF. 
+ `x-amz-date`È necessario fornire il timestamp nell'`Date`intestazione HTTP o nel AWS `x-amz-date header` (alcune librerie client HTTP non consentono di impostare l'intestazione). `Date` Quando un'intestazione `x-amz-date` è presente, il sistema ignora qualsiasi intestazione `Date` all'autenticazione della richiesta.

  La data deve essere specificata in uno dei seguenti tre formati, come indicato nel protocollo HTTP/1.1 RFC:
  + Dom, 06 novembre 1994 08:49:37 GMT (RFC 822, aggiornato da RFC 1123)
  + Domenica, 06-Nov-94 08:49:37 GMT (RFC 850, reso obsoleto da RFC 1036)
  + Dom Nov 6 08:49:37 1994 (Formato asctime() ANSI C)
+ `x-amzn-authorization` I parametri della richiesta firmata nel formato:

  ```
  AWS3 AWSAccessKeyId=####,Algorithm=HmacSHA256, [,SignedHeaders=Header1;Header2;...]
  Signature=S(StringToSign)
  ```

  `AWS3`— Si tratta di un tag AWS specifico dell'implementazione che indica la versione di autenticazione utilizzata per firmare la richiesta (attualmente, per Amazon SWF questo valore è sempre). `AWS3`

  `AWSAccessKeyId`— L'ID della tua chiave di accesso. AWS 

  `Algorithm`— L'algoritmo utilizzato per creare il valore HMAC-SHA di string-to-sign, ad esempio o. `HmacSHA256` `HmacSHA1`

  `Signature`— Base64 (Algorithm (,)). StringToSign SigningKey Per informazioni dettagliate, consulta [Calcolo della firma HMAC-SHA per Amazon SWF](HMACAuth-swf.md)

  `SignedHeaders`— (Facoltativo) Se presente, deve contenere un elenco di tutte le intestazioni HTTP utilizzate nel calcolo canonicalizzato. HttpHeaders Un singolo punto e virgola (;) (carattere ASCII 59) deve essere utilizzato come delimitatore per i valori dell'elenco. 
+  `x-amz-target`— Il servizio di destinazione della richiesta e l'operazione per i dati, nel formato 

  ` com.amazonaws.swf.service.model.SimpleWorkflowService. + {{<action>}} `

   Ad esempio, `com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain` 
+ `content-type`— Il tipo deve specificare JSON e il set di caratteri, come `application/json; charset=UTF-8`

 Il seguente è un esempio di intestazione per una richiesta HTTP per la creazione di un dominio. 

```
POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1
Host: swf.us-east-1.amazonaws.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: application/json, text/javascript, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
X-Amz-Date: Fri, 13 Jan 2012 18:42:12 GMT
X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain
Content-Encoding: amz-1.0
X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=tzjkF55lxAxPhzp/BRGFYQRQRq6CqrM254dTDE/EncI=
Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html
Content-Length: 91
Pragma: no-cache
Cache-Control: no-cache

{"name": "867530902",
 "description": "music",
 "workflowExecutionRetentionPeriodInDays": "60"}
```

Di seguito è riportato un esempio della risposta HTTP corrispondente. 

```
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json
x-amzn-RequestId: 4ec4ac3f-3e16-11e1-9b11-7182192d0b57
```

## Contenuto del corpo HTTP
<a name="JSONschema"></a>

Il corpo di una richiesta HTTP contiene i dati per l'operazione specificata nell'intestazione di una richiesta HTTP. Utilizza il formato dati JSON per trasmettere simultaneamente i valori dei dati e la struttura corrispondente. Gli elementi possono essere annidati all'interno di altri elementi utilizzando la notazione parentesi. Ad esempio, quanto segue mostra una richiesta per elencare tutte le esecuzioni del flusso di lavoro iniziate tra due momenti specifici, utilizzando la notazione Unix Time. 

```
{
 "domain": "867530901",
 "startTimeFilter":
 {
   "oldestDate": 1325376070,
	 "latestDate": 1356998399
 },
 "tagFilter":
 {
   "tag": "music purchase"
 }
}
```

## Esempio di richiesta e risposta JSON di Amazon SWF
<a name="JSONMajorExample"></a>

L'esempio seguente mostra una richiesta ad Amazon SWF per una descrizione del dominio che abbiamo creato in precedenza. Quindi mostra la risposta di Amazon SWF. 

### Richiesta HTTP POST
<a name="http-post-request"></a>

```
POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1
Host: swf.us-east-1.amazonaws.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: application/json, text/javascript, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
X-Amz-Date: Sun, 15 Jan 2012 03:13:33 GMT
X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.DescribeDomain
Content-Encoding: amz-1.0
X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=IFJtq3M366CHqMlTpyqYqd9z0ChCoKDC5SCJBsLifu4=
Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html
Content-Length: 21
Pragma: no-cache
Cache-Control: no-cache

{"name": "867530901"}
```

### Risposta di Amazon SWF
<a name="swf-response"></a>

```
HTTP/1.1 200 OK
Content-Length: 137
Content-Type: application/json
x-amzn-RequestId: e86a6779-3f26-11e1-9a27-0760db01a4a8

{"configuration":
  {"workflowExecutionRetentionPeriodInDays": "60"},
 "domainInfo":
  {"description": "music",
   "name": "867530901",
   "status": "REGISTERED"}
}
```

Il protocollo (`HTTP/1.1`) è seguito dal codice di stato (`200`). Un valore del codice di `200` indica un'operazione riuscita. 

Amazon SWF non serializza valori nulli. Se il parser JSON è impostato per serializzare valori nulli per le richieste, Amazon SWF li ignora. 