2017-05-19 2 views
0

Actuellement, j'ai WebApi tiers qui a l'appel externe suivant en utilisant Flurl Builder.Comment gérer PostJsonAsync() appel

await _client.Url.ToString().PostJsonAsync(data); 

Et je suis en train de traiter la réponse avec un tel point final:

[HttpPost] 
public void HandleResponse(HttpResponseMessage response) 
{ 
} 

Le message de réponse est avec l'état OK, mais a Content and Headers = null

Comment puis-je gérer cela correctement?

+0

Demandez-vous comment appeler une méthode asynchrone à partir d'un contexte de synchronisation? –

+0

Le contraire, je veux créer un point de terminaison pour gérer la requête 'client' –

+0

Je pense que vous confondez * demandes * avec * réponses *. Cela ne devrait-il pas être un 'HttpRequestMessage' à la place? Et votre API * ne devrait-elle pas renvoyer une réponse? – David

Répondre

0

Ce critère d'évaluation de l'API ne fait pas de sens pour moi:

[HttpPost] 
public void HandleResponse(HttpResponseMessage response) 
{ 
    //... 
} 

Le critère d'évaluation serait traitement d'une requête et retourner une réponse, et non l'inverse. Quelque chose de plus comme ceci:

[HttpPost] 
public HttpResponseMessage HandleResponse(HttpRequestMessage request) 
{ 
    //... 
} 

Quand quelque chose en contact avec une API (ou serveur de toute sorte, vraiment), il est l'envoi d'une demande à cette API. Cette API reçoit la demande et renvoie une réponse . La sémantique de ces deux mots décrit à peu près le processus, il est très important de les garder droits.

Considérer comme ça ... Si quelqu'un vous pose une question, ce que vous recevez est une question. Pas répondre. Ce que vous renvoyez à cette personne est la réponse.

+0

Merci. Je viens de changer le paramètre en 'HttpRequestMessage' mais il semble que la requête à venir soit vide avec le contenu et les en-têtes' null' –