public HttpResponseMessage getLogoPath(int ID)
{
String urlsubfix = dataManager.getMobileLogoPath(ID);
String urlToReturn = PictureController.urlprefix +urlsubfix;
var response = Request.CreateResponse(HttpStatusCode.Redirect);
response.Headers.Location = new Uri(urlToReturn);
return response;
}
我想有API調用的一個返回圖像的鏈接,我是怎麼實現這個目的是重定向到具有圖像的另一個鏈接,例如:C#的WebAPI重定向到顯示圖像
http://steve.files.wordpress.com/2006/03/Matrix%20tut%202.jpg
我想用PostMan來測試這個,它給了我一個破碎的圖像。我嘗試了四處尋找,仍然找不到解決方案。
-----代碼的編輯部分,需要此
public HttpResponseMessage GetCustomerBarCodeLogo(String ID)
{
Barcode BC = new Barcode();
Image img =BC.Encode(TYPE.CODE128, "123456789");
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
ImageConverter imageConverter = new ImageConverter();
byte[] resourceByteArray = (byte[])imageConverter.ConvertTo(img, typeof(byte[]));
MemoryStream dataStream = new MemoryStream(resourceByteArray);
result.Content = new StreamContent(dataStream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return result;
}
這將返回一個斷開的圖像。
------最新更新
我有點發現了這個問題。會發生什麼情況是SSL基本身份驗證存在問題。會發生什麼情況是第一次客戶端想要傳入請求時,身份驗證設置正確。但是,當它嘗試獲取內部代碼觸發之後的另一個請求的圖像時,該請求不具有autherizationHeader並且未通過身份驗證。我不知道第二個事件觸發的位置,因此我不知道如何手動設置該標題。
重定向可能不會發送auth頭。您是否嘗試過使用憑證緩存設置的常規客戶端進行重定向? –
我不認爲這是問題所在,因爲即使我嘗試從目錄加載圖像並將其以字節返回,它仍然不會顯示 – noobiehacker
但是,當您直接訪問URL時它確實有效,對嗎?只有當你重定向URI被破壞了? –