En essayant d'envoyer des informations dans mon API qui est programmé en utilisant WCF Web Api. Dans le client, j'utilise restsharp qui est un client de repos pour des services reposants. Cependant, lorsque j'essaie d'ajouter des paramètres à la requête, la méthode post du service n'est jamais appelée, et mon objet de réponse dans le client obtient un statut 500 (erreur interne du serveur), mais quand je commente les lignes où je ' En ajoutant des paramètres, la requête atteint la méthode post exposée dans le service.Publication http sur un service d'API web WCF en utilisant restsharp
Voici le code du client:
[HttpPost]
public ActionResult Create(Game game)
{
if (ModelState.IsValid)
{
var request = new RestRequest(Method.POST);
var restClient = new RestClient();
restClient.BaseUrl = "http://localhost:4778";
request.Resource = "games";
//request.AddParameter("Name", game.Name,ParameterType.GetOrPost); this is te line when commented everything works fine
RestResponse<Game> g = restClient.Execute<Game>(request);
return RedirectToAction("Details", new {id=g.Data.Id });
}
return View(game);
}
Voici le code pour le service:
[WebInvoke(UriTemplate = "", Method = "POST")]
public HttpResponseMessage<Game> Post(Game game, HttpRequestMessage<Game> request)
{
if (null == game)
{
return new HttpResponseMessage<Game>(HttpStatusCode.BadRequest);
}
var db = new XBoxGames();
game = db.Games.Add(game);
db.SaveChanges();
HttpResponseMessage<Game> response = new HttpResponseMessage<Game>(game);
response.StatusCode = HttpStatusCode.Created;
var uriBuilder = new UriBuilder(request.RequestUri);
uriBuilder.Path = string.Format("games/{0}", game.Id);
response.Headers.Location = uriBuilder.Uri;
return response;
}
Je dois ajouter des paramètres à ma demande si l'objet de jeu dans le service se peuplé, mais je ne sais pas comment le faire, si le service casse chaque fois que j'essaie d'ajouter des paramètres.
J'ai oublié de mentionner que le client et le serveur sont des applications .NET MVC 3.
Toute aide serait l'apprécier. Merci d'avance.
Problème résolu. Merci beaucoup! – Daniel