0
當通過web api將圖像作爲Base64編碼字符串返回時,出現'414(Request-URI Too Long)'錯誤。如何通過Web API返回圖像
我目前在我的Web API控制器的以下操作:
[System.Web.Http.Route("GetAllEvents")]
public async Task<IEnumerable<Event>> Get()
{
var vm = EventsViewModel.NewInstance;
return await vm.GetAllEvents();
}
而且vm.GetAllEvents()代碼:
public async Task<List<Event>> GetAllEvents()
{
var result = await DataStore.SelectAll();
result.ForEach(x =>
{
var byteArray = File.ReadAllBytes(x.ThumbnailPath);
x.ThumbnailEncoded = Convert.ToBase64String(byteArray);
});
return result;
}
我消耗的WebAPI操作如下:
this.ajaxRetrieve = function(url, data, onSuccessCallback, onErrorCallback) {
$.ajax({
url: url,
data: data,
type: 'GET',
async: false,
dataType: 'JSON',
success: function(result) {
onSuccessCallback(result);
},
error: function(xhr, status, error) {
onErrorCallback(xhr, status, error);
}
});
}
採取什麼更好的方法來避免這種情況發生?
在這個例子中,我應該在控制器中創建一個單獨的Action來僅返回圖像? –
這很清楚。返回HttpResponseMessage而不是任務>。那麼只需將該文件作爲流讀取並返回,就像示例代碼一樣。 –
David
這些解決方案不適合我,我得到以下內容:無法加載資源:net :: ERR_NAME_NOT_RESOLVED –