Веб-приложение .Net Core использует HttpClient для извлечения изображения (я думаю?).Если браузер использует эти конечные точки, я думаю, он загрузит изображение.Я не могу проверить это, поскольку конечные точки требуют авторизации через заголовок, что невозможно сделать в браузерах.
string endpoint = "somelink";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(endpoint);
client.DefaultRequestHeaders.Add("Accept", "image/jpeg");
client.DefaultRequestHeaders.Add("Authorization", "somekey");
HttpResponseMessage response = await client.GetAsync(endpoint);
Stream receiveStream = await response.Content.ReadAsStreamAsync();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
Console.WriteLine(response);
Console.WriteLine(readStream.ReadToEnd());
Я получаю вывод в виде:
![enter image description here](https://i.stack.imgur.com/FRpk3.png)
На стороне сервера я даю байтовый массив в качестве содержимого, поэтому он должен быть где-то внутри.Я не уверен, как использовать эту информацию для отображения изображения.
[HttpGet, Route("some link")]
public HttpResponseMessage GetQRCodeGeneratedForPackagedDrug(string id, bool returnSSLLink = false)
{
return GetQRCodeGenerated(id);
}
private HttpResponseMessage GetQRCodeGenerated(string drugId)
{
Stopwatch totalStopwatch = new Stopwatch();
totalStopwatch.Start();
try
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(drugId, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImageBitMap = qrCode.GetGraphic(20);
ImageConverter converter = new ImageConverter();
byte[] imgData = (byte[])converter.ConvertTo(qrCodeImageBitMap, typeof(byte[]));
MemoryStream ms = new MemoryStream(imgData);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(ms);
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
return this.Request.CreateResponse(System.Net.HttpStatusCode.OK, response);
}
catch (Exception ex)
{
throw new WebServicesException(ClaimsIdentityHelper.GetServiceCallID(), ex, callContext.CallID);
}
finally
{
totalStopwatch.Stop();
Logger.LogResponseTracking(totalStopwatch.ElapsedMilliseconds, ClaimsIdentityHelper.GetServiceCallID(), this.GetType().ToString());
}
}