2017-05-03 2 views
0

Ich verwende HttpHandler in meinem Asp.Net MVC-Projekt. Ich habe ein anderes MVC API-Projekt, das Bild als Antwort zurückgibt. Mit HttpWebRequest kann ich die API aufrufen, es gibt keinen Fehler im Code, aber ich kann das Bild auf der Seite nicht sehen.Get Image als eine Antwort von HttpWebRequest in HttpHandler

Mein Code:

Httphandler Code:

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

Haben Sie versucht, den ContentType zu spezifizieren? Können Sie das Bild herunterladen/anzeigen, wenn Sie die URL in einem Browser öffnen? – Fixation

+0

@Fixation ja Ich kann das Bild herunterladen, wenn ich URL im Browser öffnen, auch versuchte ich contentype – Jigarb1992

Antwort

1

Dies funktioniert, wenn Sie die ContentType prope gesetzt rly und einfach kopieren Sie den Antwort-Stream auf den Ausgang, wie folgt:

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

Danke aber nicht funktioniert @Johnny – Jigarb1992

+0

Es funktionierte für mich, als ich die letzten zwei Zeilen in Ihrem Beispiel mit denen oben ersetzt. Haben Sie Fehler in Visual Studio oder in Ihrer Webbrowser-Konsole? –

+0

Opps! Entschuldigung, ich überprüfe es erneut und der Pfad, den ich angegeben habe, ist falsch. Seine Arbeit @Johnny Danke :) – Jigarb1992