Vous pouvez gérer les cookies sur un hamac. Bien que cela ne semble pas naturel dans le code, cela fonctionne. Vous devez enregistrer manuellement les cookies sur chaque réponse et les associer à chaque requête suivante. Cela fait partie du code que j'utilise sur une classe qui consomme un service Web. Sur d'autres méthodes, au lieu d'appeler RestClient.Request(), j'appelle _Request() afin qu'il gère les cookies chaque fois que je fais une requête.
using System.Collections.Specialized;
using Hammock;
using System.Net;
static class Server {
private static RestClient Client;
private static NameValueCollection Cookies;
private static string ServerUrl = "http://www.yourtarget.com/api";
private static RestResponse _Request(RestRequest request) {
//If there was cookies on our accumulator...
if (Cookies != null)
{
// inyect them on the request
foreach (string Key in Cookies.AllKeys)
request.AddCookie(new Uri(ServerUrl), Key, Cookies[Key]);
}
// make the request
RestResponse response = Client.Request(request);
// if the Set-Cookie header is set, we have to save the cookies from the server.
string[] SetCookie = response.Headers.GetValues("Set-Cookie");
//check if the set cookie header has something
if (SetCookie.Length > 0)
{
// if it has, save them for future requests
Cookies = response.Cookies;
}
// return the response to extract content
return response;
}
}
êtes-vous d'essayer d'automatiser le test en testant? Fiddler a une option pour envoyer du HTTP brut que vous pouvez aussi utiliser pour REST. – Aliostad
@Alostad - Je n'ai pas pour objectif de créer une bibliothèque cliente pour le service de repos, que je puisse éventuellement connecter à nunit pour exécuter des tests automatisés. Cela servira également de base pour un client Silverlight. –