0
Web api経由でBase64エンコードされた文字列として画像を返すときに '414(Request-URI Too Long)'エラーが発生します。Web API経由で画像を返す方法
私は現在、私のウェブ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);
}
});
}
これを回避するには、より良いアプローチは何でしょうか?
この例では、イメージを返すだけのコントローラに別のアクションを作成する必要がありますか? –
これは明らかです。 Task>の代わりにHttpResponseMessageを返します。ストリームとしてファイルを読み込み、サンプルコードのように返します。 –
David
これらのソリューションは私にとってはうまくいかず、次のようになります。リソース:net :: ERR_NAME_NOT_RESOLVED –