

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Envoi de demandes HTTP à Amazon SWF
<a name="UsingJSON-swf"></a>

Si vous n'utilisez pas l'un d'entre eux AWS SDKs, vous pouvez effectuer des opérations Amazon Simple Workflow Service (Amazon SWF) via HTTP à l'aide de la méthode de requête POST. La méthode POST nécessite que vous définissiez l'opération dans l'en-tête de la requête et que vous fournissiez les données de l'opération au format JSON dans le corps de la requête. 

## Contenu de l'en-tête HTTP
<a name="HTTPHeader"></a>

Amazon SWF requiert les informations suivantes dans l'en-tête d'une requête HTTP :
+ `host`Le point de terminaison Amazon SWF. 
+ `x-amz-date`Vous devez fournir l'horodatage dans l'`Date`en-tête HTTP ou dans le AWS `x-amz-date header` (certaines bibliothèques clientes HTTP ne vous permettent pas de définir l'`Date`en-tête). Lorsqu'un en-tête `x-amz-date` est présent, le système ignore tout en-tête `Date` lors de l'authentification de la demande.

  La date doit être spécifiée dans l'un des formats suivants, comme indiqué dans le RFC HTTP/1.1 :
  + Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, mis à jour par RFC 1123)
  + Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, rendu obsolète par RFC 1036)
  + Dim 6 nov 08:49:37 1994 (format asctime() ANSI C)
+ `x-amzn-authorization` Les paramètres de requête signés au format :

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

  `AWS3`— Il s'agit d'une balise AWS spécifique à l'implémentation qui indique la version d'authentification utilisée pour signer la demande (actuellement, cette valeur est toujours valable pour Amazon SWF). `AWS3`

  `AWSAccessKeyId`— L'identifiant de votre clé d' AWS accès.

  `Algorithm`— L'algorithme utilisé pour créer la valeur HMAC-SHA de string-to-sign, telle que ou. `HmacSHA256` `HmacSHA1`

  `Signature`— Base64 (Algorithme ( StringToSign, SigningKey )). Pour en savoir plus, consultez la section [Calcul de la signature HMAC-SHA pour Amazon SWF](HMACAuth-swf.md).

  `SignedHeaders`— (Facultatif) Le cas échéant, doit contenir une liste de tous les en-têtes HTTP utilisés dans le calcul canonisé HttpHeaders . Vous devez utiliser un point virgule (;) (caractère ASCII 59) pour délimiter les valeurs de la liste. 
+  `x-amz-target`— Le service de destination de la demande et le fonctionnement des données, au format 

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

   Par exemple, `com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain` 
+ `content-type`— Le type doit spécifier le JSON et le jeu de caractères, comme `application/json; charset=UTF-8`

 Voici un exemple d'en-tête de requête HTTP utilisé pour créer un domaine. 

```
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"}
```

Voici un exemple de la réponse HTTP correspondante. 

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

## Contenu du corps HTTP
<a name="JSONschema"></a>

Le corps d'une requête HTTP contient les données de l'opération spécifiée dans l'en-tête de la requête HTTP. Utilisez le format de données JSON pour transmettre simultanément les valeurs de données et la structure de données. Pour imbriquer des éléments dans d'autres, utilisez la notation d'accolade. Par exemple, ce qui suit montre une demande visant à répertorier toutes les exécutions de flux de travail qui ont débuté entre deux moments spécifiés, à l'aide de la notation horaire Unix. 

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

## Exemple de demande et de réponse Amazon SWF JSON
<a name="JSONMajorExample"></a>

L'exemple suivant montre une demande adressée à Amazon SWF pour obtenir une description du domaine que nous avons créé précédemment. Il affiche ensuite la réponse Amazon SWF. 

### Demande 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"}
```

### Réponse d'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"}
}
```

Notez que le protocole (`HTTP/1.1`) est suivi d'un code d'état (`200`). La valeur `200` indique une opération réussie. 

Amazon SWF ne sérialise pas les valeurs nulles. Si votre analyseur JSON est configuré pour sérialiser les valeurs nulles pour les requêtes, Amazon SWF les ignore. 