Comment faire pour envoyer correctement un PATCH demande
J'ai besoin d'appeler ce point de terminaison REST
PATCH https://graph.windows.net/contoso.onmicrosoft.com/users/[email protected]?api-version=1.5 HTTP/1.1
{
"<extensionPropertyName>": <value>
}
Veuillez voir la documentation ici: https://msdn.microsoft.com/en-us/library/azure/dn720459.aspx
J'ai le code suivant pour définir la valeur d'une propriété d'un utilisateur:
public async Task<ActionResult> AddExtensionPropertyValueToUser()
{
Uri serviceRoot = new Uri(azureAdGraphApiEndPoint);
var token = await GetAppTokenAsync();
string requestUrl = "https://graph.windows.net/mysaasapp.onmicrosoft.com/users/[email protected]?api-version=1.5";
HttpClient hc = new HttpClient();
hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
var method = new HttpMethod("PATCH");
var request = new HttpRequestMessage(method, requestUrl)
{
Content = new StringContent("{ \"extension_33e037a7b1aa42ab96936c22d01ca338_Compania\": \"Empresa1\" }", Encoding.UTF8, "application/json")
};
HttpResponseMessage hrm = await hc.GetAsync(new Uri(requestUrl));
if (hrm.IsSuccessStatusCode)
{
string jsonresult = await hrm.Content.ReadAsStringAsync();
return View("TestRestCall", new SuccessViewModel
{
Name = "The Title",
Message = "The message",
JSON = jsonresult.ToJson()
});
}
else
{
return View();
}
}
Cependant au lieu de respongint avec 204 (Pas de contenu), son de répondre à l'ensemble des propriétés de l'utilisateur, donc je suppose que quelque chose est incorrect avec mon APPEL reste
http://screencast.com/t/LmoNswKIf2
Vous mentionnez que vous êtes de ne pas obtenir de la 204, mais était l'attribut d'extension a été écrit?
OriginalL'auteur Luis Valencia | 2015-05-25
Vous devez vous connecter pour publier un commentaire.
Je pense que votre problème vient de cette ligne:
Cela envoie une requête HTTP GET à l'URL que vous fournissez, qui, dans ce cas, les références de l'utilisateur "[email protected]". C'est pourquoi vous voyez toutes les propriétés de l'utilisateur retourné dans la réponse.
Je pense que ce que vous voulez faire est d'envoyer le PATCH HttpRequestMessage que vous avez créé. Pour ce faire, vous devez utiliser la méthode SendAsync et d'approvisionnement de la HttpRequestMessage en tant que paramètre. Si vous modifiez la ligne ci-dessus pour la suite, je pense que vous allez définir la valeur de propriété et d'obtenir votre 204 No Content de réponse:
Salut Jimaco , je suis en utilisant sendAsync , mais toujours face à des questions : les pointeurs ? stackoverflow.com/questions/36023821/...
OriginalL'auteur Jimaco Brannian