处理来自Microsoft图的照片响应



我无法弄清楚此调用实际返回的内容以及如何将其显示为 HTML 中的img标签。当我使用联机 Microsoft 图形资源管理器测试环境使用相同的 URI 时,我按预期获取图像。

var requestUri =
    "https://graph.microsoft.com/v1.0/barfoo.onmicrosoft.com/users/xxxxx-xxxxxx-xxxxx/photo/$value";
var request =
    new HttpRequestMessage(HttpMethod.Get, requestUri);
var accessToken =
    await _authenticationHelper.GetAccessTokenAsync();
request.Headers.Authorization =
    new AuthenticationHeaderValue("Bearer", accessToken);
var response = await client.SendAsync(request);

>HttpClient可以给你一个Stream的响应。

在 ASP.NET Core中,我已经完成了此操作:

[HttpGet]
public async Task<IActionResult> ProfilePhoto()
{
    //removed all the code which you already have
    HttpResponseMessage res = await client.SendAsync(request);
    return File(await res.Content.ReadAsStreamAsync(), "image/jpeg");
}

MVC ASP.NET"经典"应该非常相同,您至少会用 ActionResult 替换IActionResult

然后,您可以将其链接到图像标记,例如:

<img src="/Home/ProfilePhoto"/>

获得用户照片响应后,您应该能够按照以下行渲染图像: src="data:image/jpeg;base64,{{ user.profilePic }}">

最新更新