问题标签 [winrt-httpclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
207 浏览

c# - 在 WinRT 应用程序中使用 ISupportIncrementalLoading 加载图像

我正在开发一个 Windows Phone 8.1 应用程序,我想使用 ISupportIncrementalLoading 接口从 REST API 服务器加载对象列表。关注这篇文章https://marcominerva.wordpress.com/2013/05/22/implementing-the-isupportincrementalloading-interface-in-a-window-store-app/我创建了一些类来下载我的对象方法:

我的源类增量加载数据:

私有对象 httpService 是一个具有通过 HttpClient 下载数据的方法的类。例如:

我在我的项目中使用了 MVVMLight,我有一个带有 MyObjectsCollection 的 ViewModel(当然它实现了 ISupportIncrementalLoading),我在 XAML 中有一个标准 ListView,SourceItems 绑定到 MyObjectsCollection。一切正常,但只有当我下载没有照片的 MyObjects 时。但是当我在 foreach 循环中使用 LoadImage 方法时,UI 线程被锁定,几秒钟后出现新对象,用户无法滚动或按下按钮。我做错了什么?也许我应该以其他方式而不是通过 Dispatcher 将 Image 分配给 myObject.Image 属性?但是如果没有 COMException,我该怎么做呢?谢谢你的帮助。

0 投票
2 回答
527 浏览

c# - 如何使用 Windows.Web.HttpClient 反序列化数据?

我需要从 Json 获取反序列化的对象列表。

我的问题是这段代码挂在responseMessage = await httpClient.GetAsync(uri);我已经在 Fiddler 中检查了 get 和 response 的行中,我在 Fiddler 中得到了 Json,一切都有代码 200 OK,但是由于某种原因,在 VS 中调试时代码不会前进到下一行,它只是永远挂起。我在这段代码中缺少什么来获取对象列表?

由于代码挂在提到的行问题必须在 HttpClient 中的某个地方。

提前感谢您的任何提示。

0 投票
1 回答
175 浏览

windows-runtime - 从通用 Windows 应用程序 (winRT) 访问 Exchange Server

我使用 Windows 10 电子邮件应用程序连接到我的交换服务器,即我已经为我的交换服务器设置了 UserDataAccount 实例。

我想编写另一个将使用此帐户与 Exchange 对话的应用程序,并且我只想使用WinRT API

首先,我需要从UserDataAccount获取 Exchange 信息。如果它托管在云中,我想我需要 URL、租户 ID 和用户名。问题是 UserDataAccount 没有此信息。有类DeviceAccountConfiguration似乎拥有一切,但我找不到获取此类实例的方法。

一旦获得有关 Exchange 连接的信息,我就可以使用 Office356 REST 与 Exchange 对话。我想直接与 Exchange 交谈的原因是因为我没有找到可以使用 UserDataAccount 检索 Exchange 特定信息的 WinRT API,例如来自 Exchange 的有关联系人的完整信息。

所以我有 UserDataAccount,我需要从这个数据帐户获取有关 Exchange API(EWS 或 REST)的凭据和信息。之后应该很容易,请参阅 Adam 的答案以及 office356 示例代码的链接。

我花了一些时间研究WinRT API,但它的文档很少,而且很难发现不同对象之间的关系,并且某些方法会抛出 NotImplemented 异常。

WintRT API 准备好使用了吗?看起来很多东西都断开了并且丢失了。

请帮忙!

谢谢

0 投票
2 回答
870 浏览

c# - 如何获取上传进度?

对不起我的英语不好。我有一种方法可以将 StorageFile 发送到服务器。我尝试使用Windows.Web.Http.HttpClient,但不起作用(从服务器获得无效响应),所以我使用System.Net.Http.HttpClient.
这是我的代码:

是否可以在回调函数中更改代码以接收有关下载文件的进度?

0 投票
2 回答
1684 浏览

c# - UWP Windows Store 应用上的 TLS 客户端证书身份验证

我正在尝试连接到使用 TLS 和客户端证书身份验证的服务器。下面是一个代码片段:

SendRequestAsync 调用引发 HRESULT 0x80072F7D 异常 - 我相信这意味着 ERROR_INTERNET_SECURITY_CHANNEL_ERROR。服务器证书信任没有问题。客户端证书安装在应用程序本地商店中,我准备使用 CertificateStores.FindAllAsync 检索它。查看 SSL 跟踪,我可以看到没有发送客户端证书。

如果 HttpBaseProtocolFilter.AllowUI 设置为 true,则不会出现上述问题。在这种情况下,SendRequestAsync 调用会导致显示一个 UI,请求同意使用客户端证书。在此对话框中选择“允许”后,我可以看到客户端证书和证书验证消息正在跟踪中发送,并且连接已成功建立。

问题:应用程序代码已经处理了用户的证书选择。我想知道是否有任何方法可以指定同意以编程方式使用客户端证书。因为启用 AllowUI 会导致其他副作用 - 例如,如果服务器重新运行带有 WWW-Authenticate: Basic 标头的 401 HTTP 代码,则基本协议过滤器会弹出它自己的 UI 以接受用户凭据,而不会给调用者机会处理它。想避免上述两种 UI,因为我已经选择了客户端证书并从具有自己 UI 的用户那里获得了凭据。谢谢

0 投票
0 回答
226 浏览

ssl - 无法在 Windows 10 移动版上将 HttpBaseProtocolFilter.AllowUI 设置为 true

我有一个使用客户端证书进行 SSL 身份验证的 UWP 应用程序。证书存储在用户存储中,应用程序在清单中声明“共享用户证书”功能,我可以看到集合中返回的证书CertificateStores.FindAllAsync。该应用程序在 Windows 10 桌面上运行良好——我可以设置HttpBaseProtocolFilter.AllowUI = true并且该应用程序在使用私钥之前会显示一个确认对话框。

但是,当我在 Windows 10 Mobile 上运行完全相同的代码时,属性分配会抛出System.Exception:“找不到元素。(来自 HRESULT 的异常:0x80070490)”。

难道我做错了什么?代码在 UI 线程上运行。我猜手机没有内置证书 UI。我只能使用存储在应用程序自己的证书存储中的证书(不需要 UI 确认),而不是用户存储。

0 投票
0 回答
631 浏览

c# - UWP System.Runtime.Interop.COMException on Debug 但 System.Exception on Release

我面临以下问题

我的解决方案是像这样使用 MVVM 设置的。

  • UWP 应用 -> 查看
  • 针对 Windows Universal 和 .NET Framework 4.6 -> ViewModel 的 PCL
  • 面向 Windows Universal 和 .NET Framework 4.6 的 PCL -> 模型

在查看项目中,我有一项使用Windows.Web.Http.HttpClient. 该服务被注入到几个 ViewModel 中。

在视图模型中,我有一个这样的 try catch 块。

MakeACallAsync 就是这个函数,但问题不仅限于这个调用,它也发生在其他类似的调用中。

现在,如果服务由于 404、500 等响应而引发任何异常,我会捕获这些异常并处理它们。

这在 Debug 中运行良好,但在 Release 中,异常不是System.Runtime.InteropServices.COMExceptionSystem.Exception.

有谁知道为什么会这样??

0 投票
2 回答
1308 浏览

c# - 如何将 RednerTargetBitmap 图像转换为 byteArray 以在 UWP 中的服务器上上传

我有一个覆盖整个屏幕的网格,我想将该网格制作为图像,然后将该图像发送到服务器上。我为此目的使用了 RenderTargetBitmap,并成功地使用 FileSave Picker 制作了 writeablebitmap 来保存。图像保存为正常大小,如预期的 700kb,但这些字节太大而无法在服务器上上传。700kb 图像的预期字节数可能是 20 万,但在我的情况下,字节数超过 300 万。字节肯定有问题。这是我使用文件保存选择器将网格保存为图像的代码。

上面的代码成功地将图像保存到正常大小的给定位置。但是当我使用上面的像素字节数组到服务器时。发送请求时 Http 发送任务取消了异常,我已对其进行了详细检查。这是由于大量的字节数组。此外,如果我发送一个非常小的 50x50 网格,则上传成功,因为它只有 3 万字节,但上传到服务器上的图像为空或损坏。

我也使用上面转换的 writeablebitmap 来使用这种方法制作它的字节数组......

它还返回相同数量的字节数组,并且服务器发生了相同的错误。

请告诉我从 RenderTargetBitmap 制作字节数组的正确方法,并且可以很容易地上传到服务器上。

0 投票
1 回答
463 浏览

c# - 如果与主机的连接丢失,则取消 IInputStream.ReadAsync

我正在编写一个 UWP (WinRT) 解决方案,该解决方案从服务器下载文件并保存到光盘,同时指示进度。为此,我扩展了 IAsyncOperationWithProgress 方法。

我的问题是在一行:

我等待从流中读取内容。如果连接丢失,这条线路将无限期地等待,直到重新建立连接。

对于 UWP,我如何为 Http 请求分配超时,或者取消单个任务?

我的扩展 IAsyncOperationWithProgress:

上面的代码是如何调用的: