> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

> PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

Crée ou met à jour une session, ou s'y joint.

> **Important :**\
> Cette méthode d'URI exige un élément d'en-tête X-Xbl-Contract-Version: 104/105 ou ultérieur dans chaque requête.

* [Remarques](#ID4ET)
* [Paramètres d'URI](#ID4EYB)
* [Codes d'état HTTP](#ID4EFC)
* [Corps de la requête](#ID4EOC)
* [Corps de la réponse](#ID4E4C)

<a id="ID4ET" />

## Remarques

Cette méthode HTTP/REST crée une session, s'y joint ou la met à jour, selon le sous-ensemble du même modèle de corps de requête JSON qui est envoyé. En cas de réussite, elle retourne un objet **MultiplayerSession** contenant la réponse retournée par le serveur. Ses attributs peuvent différer de ceux de l'objet **MultiplayerSession** transmis. Cette méthode peut être encapsulée par **Microsoft.Xbox.Services.Multiplayer.MultiplayerService.WriteSessionAsync**.

Les opérations de création et de mise à jour de session utilisent PUT avec un corps application/json qui représente les modifications à appliquer. Les opérations sont idempotentes, c'est-à-dire que plusieurs applications des mêmes modifications n'ont aucun effet supplémentaire.

Le corps de requête JSON reflète la structure de données de la session. Tous les champs et sous-champs sont facultatifs.

Le format de transmission du mode de création ou de jonction de session de la méthode PUT est présenté ci-dessous.

> **Remarque :**\
> Utilisez ce modèle avec prudence. Les mises à jour sont appliquées aveuglément, quel que soit l'état actuel de la session.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

Le format de transmission du mode de mise à jour de session de la méthode PUT est présenté ci-dessous.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

Le format de transmission de la méthode PUT pour mettre à jour les propriétés de session est présenté ci-dessous. Il équivaut à une opération PUT vers l'URI de la session avec un corps ne contenant que l'objet ci-dessous comme propriétés. La différence est que cette opération retourne le code d'erreur 404 Not Found si la session n'existe pas. Cette opération prend en charge l'en-tête If-Match.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001/properties HTTP/1.1
         Content-Type: application/json

         { "system": { }, "custom": { } }

```

<a id="ID4EYB" />

## Paramètres d'URI

\| Paramètre| Type| Description|
\| --- | --- | --- | --- | --- |
\| scid| GUID| Identificateur de configuration de service (SCID). Partie 1 de l'identificateur de session.|
\| sessionTemplateName| chaîne| Nom de l'instance actuelle du modèle de session. Partie 2 de l'identificateur de session.|
\| sessionName| GUID| Identifiant unique de la session. Partie 3 de l'identificateur de session.|

<a id="ID4EFC" />

## Codes d'état HTTP

Le service retourne un code d'état HTTP tel qu'il s'applique à MPSD.

<a id="ID4EOC" />

## Corps de la requête

Voici un exemple de corps de requête pour créer une session ou s'y joindre. Les membres suivants du corps de la requête sont facultatifs. Tous les autres membres possibles sont interdits dans une requête.

\| Membre| Type| Description|
\| --- | --- | --- | --- | --- | --- | --- | --- |
\| constants| objet| Paramètres en lecture seule qui sont fusionnés avec le modèle de session pour produire les constantes de la session. |
\| properties | objet | Modifications à fusionner dans les propriétés de la session.|
\| members.me | objet| Constantes et propriétés qui fonctionnent de façon très semblable à leurs équivalents de niveau supérieur. Toute méthode PUT exige que l'utilisateur soit membre de la session et ajoute l'utilisateur au besoin. Si « me » est spécifié comme null, le membre qui effectue la requête est supprimé de la session. |
\| members | objet| Autres objets représentant des utilisateurs à ajouter à la session, indexés par un index de base zéro. Le nombre de membres dans une requête commence toujours à 0, même si la session contient déjà des membres. Les membres sont ajoutés à la session dans l'ordre dans lequel ils apparaissent dans la requête. Les propriétés d'un membre ne peuvent être définies que par l'utilisateur auquel elles appartiennent. |
\| servers | objet| Valeurs indiquant les mises à jour et les ajouts à l'ensemble des participants serveur associés à la session. Si un serveur est spécifié comme null, l'entrée de ce serveur est supprimée de la session. |

```cpp theme={null}
{
  "properties": {
    "custom": {"KANWE": "MGMSY"},
    "system": {}
  },
  "constants": {
    "custom": {},
    "system": {"visibility": "open"}
  },
  "members": {
    "reserve_0": {
    "constants": {
      "custom": {"type": "leader"},
      "system": {"xuid": "5500461"} }}
   }
}

```

<a id="ID4E4C" />

## Corps de la réponse

Exemple de corps de réponse pour la création d'une session ou la jonction à une session :

```cpp theme={null}
{
  "contractVersion": 104,
  "correlationId": "0FE81338-EE96-46E3-A3B5-2DBBD6C41C3B",
  "nextTimer": "2009-06-15T13:45:30.0900000Z",

  "initializing": {
    "stage": "measuring",
    "stageStartTime": "2009-06-15T13:45:30.0900000Z",
    "episode": 1
  },

  "hostCandidates": [ "ab90a362", "99582e67" ],

  "constants": {
    "system": {"visibility": "open"},
    "custom": {}
  },

  "properties": {
     "system": { "turn": [] },
     "custom": { "myProperty": "myValue" }
  },

  "members": {
      "1": {
        "properties": {
        "system": { },
        "custom": { }
      },

      "constants": {
        "system": { "xuid": "5500461" },
        "custom": { }
      }

      "gamertag": "stacy",
      "deviceToken": "9f4032ba7",
      "reserved": true,
      "activeTitleId": "8397267",
      "joinTime": "2009-06-15T13:45:30.0900000Z",
      "turn": true,
      "initializationFailure": "latency",
      "initializationEpisode": 1,
      "next": 4
    },
  },

  "membersInfo": {
      "first": 1,
      "next": 4,
      "count": 1,
      "accepted": 0
  },

  "servers": {
      "name": {
        "constants": { },
        "properties": { }
      }
  }
}

```

<a id="ID4EID" />

## Voir aussi

<a id="ID4EKD" />

##### Parent

[/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName}](/fr-CA/reference/live/rest/uri/sessiondirectory/uri-serviceconfigsscidsessiontemplatessessiontemplatenamesessionssessionname)


## Related topics

- [XblMultiplayerSessionReferenceUri](/zh-CN/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreferenceuri.md)
- [XblMultiplayerSessionReference](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreference.md)
- [XblMultiplayerSessionReferenceCreate](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionreferencecreate.md)
