2017-05-03 85 views
0

我在我的Asp.Net MVC項目中使用HttpHandler。我有另一個MVC API項目返回圖像作爲迴應。使用HttpWebRequest我可以調用API,代碼中沒有錯誤,但我無法查看頁面中的圖像。獲取圖像作爲HttpWebRequest在HttpHandler中的響應

我的代碼:

的HttpHandler代碼:

var currentResponse = HttpContext.Current.Response; 

string URL = "http://localhost:50417/API/GetThumbnail"; 
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); 
        request.KeepAlive = false; 
        request.ProtocolVersion = HttpVersion.Version10; 
        request.Method = "GET"; 
        request.Timeout = 30000; 
        HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

        StreamReader streamr = new StreamReader(response.GetResponseStream()); 


        currentResponse.Write(streamr.ReadToEnd()); 

RouteConfig.cs

routes.Add(new Route("Thumbnail/getImage", new ThumbnailImageRouteHandler())); 

index.csHtml

<img src="/Thumbnail/getImage" /> 
+0

您是否嘗試過指定contenttype?如果您在瀏覽器中打開網址,您是否可以下載/查看圖像? – Fixation

+0

@Fixation是我可以下載圖片,如果我在瀏覽器中打開網址,我也試過contenttype – Jigarb1992

回答

1

這工作如果你設置了ContentType prope並簡單地將響應流複製到輸出中,如下所示:

response.GetResponseStream().CopyTo(currentResponse.OutputStream); 
currentResponse.ContentType = response.ContentType; 
+0

謝謝,但不工作@Johnny – Jigarb1992

+0

它爲我工作時,我用你的例子中的最後兩行代替。您是否在Visual Studio或您的Web瀏覽器控制檯中遇到任何錯誤? –

+0

反對!對不起,我再次重新檢查一遍,我給出的路徑是錯誤的。它的工作@Johnny謝謝:) – Jigarb1992

相關問題