Depuis le dernier tutoriel sur UnityWebRequest, nous savons comment récupérer des informations depuis un serveur web, mais pas l'inverse ... Nous verrons ici comment envoyer des informations vers un serveur web avec la méthode Post de UnityWebRequest.
Avant toute chose il est important d'avoir les bases sur l'utilisation de UnityWebRequest. Aussi n'hésitez pas à faire un détour vers les tutoriels dédiés à la classe WWW, ou la réception de datas avec UniyWebRequest depuis un serveur web.
Méthode Post de la classe UnityWebRequest
Cette méthode nous permet, non seulement de contacter un URI, mais aussi d'ajouter au passage des données (datas), en utilisant un objet de type WWWForm.
D'après la documentation de UnityWebRequest.Post de Unity, cette méthode permet de créer une requête de type POST:
Creates a UnityWebRequest configured to send form data to a server via HTTP POST.
Les données envoyées doivent être placées dans un objet de type WWWFom, puis l'objet est passé en paramètre à la méthode Post.
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class MyBehavior : MonoBehaviour
{
void Start()
{
StartCoroutine(Upload());
}
IEnumerator Upload()
{
WWWForm form = new WWWForm();
form.AddField("myField", "myData");//une donnée est ajoutée ici
using (UnityWebRequest www = UnityWebRequest.Post("http://www.my-server.com/myform", form))
{
yield return www.SendWebRequest();// on attend le retour (réponse) du serveur web !
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log("Form upload complete!");
}
}
}
}
Ainsi les données sont envoyées, ici au serveur web et à l'URI:
"http://www.my-server.com/myform"
Le reste du travail concerne après le serveur, ou plus exactement les scripts PHP du serveur. Cet aspect ne sera pas traité ici.
A ce sujet vous pouvez retrouver un tutoriel sur l'utilisation du JSON pour envoyer des réponses serveur.
Une fois que le serveur a renvoyé sa réponse, côté C#, on peut ainsi traiter le retour, et pourquoi pas débloquer des fonctionnalités dans notre jeu vidéo. C'est ce que nous allons voir dans notre exemple d'utilisation qui suit.
Exemple d'utilisation en vidéo
Retrouvez le package pour suivre le tutoriel.