0

我正在开发通用 Windows 应用程序,在我当前的项目中,我使用统一通信 Web API (UCWA) 来显示 Skype 用户状态,它工作正常,但是当我当时试图显示 Skype 用户照片时,我被卡住了。

我按照以下链接显示照片 https://msdn.microsoft.com/en-us/skype/ucwa/getmyphoto

我的 GET 请求的响应代码为 200 OK,但我不知道如何从我的响应中显示图像。

请告诉我如何解决它。

-普拉迪普

4

3 回答 3

1

我得到了结果,在获得 HTTP 响应之后,我使用下面的行将这些响应内容转换为流类型。

var presenceJsonStr = await httpResponseMessage.Content.ReadAsStreamAsync();

这是显示图像的代码

 var photo = await AuthenticationHelper.Photo();
// Create a .NET memory stream.
                var memStream = new MemoryStream();

                // Convert the stream to the memory stream, because a memory stream supports seeking.
                await photo.CopyToAsync(memStream);

                // Set the start position.
                memStream.Position = 0;

                // Create a new bitmap image.
                var bitmap = new BitmapImage();

                // Set the bitmap source to the stream, which is converted to a IRandomAccessStream.
                bitmap.SetSource(memStream.AsRandomAccessStream());

                // Set the image control source to the bitmap.
                imagePreivew.ImageSource = bitmap;
于 2016-09-20T14:45:44.590 回答
0

假设您放置了一个指定图像类型的 Accept 标头,您应该能够查看 Content-Length 标头以确定用户是否在服务器上设置了图像。如果长度为零,您应该考虑提供要显示的默认图像。如果没有,我建议您查看在 UWP 平台中将位图图像转换为字节数组和反之亦然,因为您应该将响应正文视为一个字节数组,其长度由 Content-Length 标头定义。

如果由于某种原因没有提供 Accept 标头,则响应正文不是 image/* 类型,并且看起来像字符串,那么您可能正在处理 Base64 编码的图像。这种情况应该不太可能处理,但如果您需要建议,我建议您查看在Windows Runtime 中的 Reading and Writing Base64

于 2016-09-20T14:21:48.477 回答
0

您可以直接使用为用户照片资源生成的 URL。只需将图片的 URL 设置为 Image 容器的来源即可。您的应用程序会自动加载它。

于 2016-09-22T12:59:18.817 回答