2015-06-16 124 views
1

我有一個web api控制器操作,發送請求到另一臺服務器並獲取圖像。Asp.net mvc web api異步請求結果

public class MyController : ApiController 
{ 
    public async Runner<HttpResponseMessage> Wms() 
    { 
     return await Run();          
    } 

    private Task<HttpResponseMessage> Run() 
    { 
     HttpRequestMessage requestMessage = new HttpRequestMessage(); 
     requestMessage.RequestUri = "http://...."; 

     foreach (var header in this.Request.Headers) 
      requestMessage.Headers.Add(header.Key, header.Value); 

     return requestMessage.SendAsync(); 
    } 
} 

我怎樣才能得到的requestMessage.SendAsync()

回答

1

異步請求結果你需要異步調節劑添加到方法和await SendAsync()

private async Task<HttpResponseMessage> RunAsync() 
{ 
    HttpRequestMessage requestMessage = new HttpRequestMessage(); 
    requestMessage.RequestUri = "http://...."; 

    foreach (var header in this.Request.Headers) 
     requestMessage.Headers.Add(header.Key, header.Value); 

    HttpResponseMessage response = await requestMessage.SendAsync(); 
    string resultData = await response.Content.ReadAsStringAsync(); 
} 

或者,如果你想裏面Wms響應,你可以await那。

+0

var response = await requestMessage.SendAsync();響應沒有名爲Result的屬性。那麼我怎樣才能得到圖像的結果呢? – barteloma

+0

您正在尋找'var result = await response.Content.ReadAsStringAsync();'或'ReadAsStreamAsync()',無論您想要什麼。 –