2017-05-10 8 views
1

Mein Problem ist, wenn ich versuche, meine Web-API Rest Service von einer MVC-Anwendung mit HttpClient PostAsync() aufrufen, meine Web-API nie die Antwortnachricht zurückgeben.HTTPClient PostAsync() mit async und erwarten nie zurück Nachricht

ist der mvc App-Code:

public async Task<string> sendToWebAPI(string _obj) 
    { 
     using (HttpClient client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri(ConfigurationManager.AppSettings["WebAPIRestService"]); 
      StringContent _jsonParameter = new StringContent(_obj, Encoding.UTF8, "application/json"); 

      HttpResponseMessage Res = await client.PostAsync("api/webAPIController/", _obj).ConfigureAwait(false);    
      var WebAPIResponse = await Res.Content.ReadAsStringAsync(); 

      return WebAPIResponse; 

     } 
    } 

MVC Web-API-Code:

[HttpPost] 
    public async Task<string> Dowork([FromBody] string _obj) 
    { 
     HttpResponseMessage result = Request.CreateResponse(_obj != "" ? HttpStatusCode.OK : HttpStatusCode.InternalServerError); 
     return result; 
    } 

Dank!

+0

Bitte benutzen Sie Camelcase für Ihre Variablen und Pascal Namensgebung für Ihre Methoden zu benennen. –

Antwort

0

Ihr API-Code gibt derzeit keine Zeichenfolge zurück. Es wird entweder OK oder InternalServerError zurückgegeben. Ändern Sie Ihren Code wie folgt.

bool isOK = string.isNullOrEmpty(_obj); 
result = isOK ? request.CreateResponse<string>(HttpStatusCode.OK, _obj) : 
request.CreateResponse<string>(HttpStatusCode.InternalServerError, "Invalid Data");