我正在使用Windows Phone 7应用程序进行REST服务调用。托管Web服务的第三方在当前环境中具有无效的证书。当我在Firefox中点击URL时,我收到有关证书的警告,并询问我是否要继续。我也正在使用Poster FF扩展程序来测试呼叫。如果我先在Firefox中接受无效的证书,则可与Poster一起使用。如果我不这样做,那么POSTER不会发出请求。
在我的WP7模拟器中,我根本无法发出请求。我在EndGetResponse方法处收到404。我发出的请求与发帖人相同,因此我知道请求没有错。我已经使用相同的代码成功地击中了另一个Web服务(不涉及证书),所以我认为这不是代码。我唯一能想到的是WP7不允许对无效证书的请求。有没有人遇到过这种情况的经验?有什么办法解决吗?
有没有一种方法可以告诉我的应用程序接受所有通信,即使证书无效也可以吗?
最佳答案
遗憾的是,无法通过电话进行此操作。通常,即在桌面上,此简单的代码行将禁用证书检查。
System.Net.ServicePointManager.ServerCertificateValidationCallback = (se, cert, chain, sslError) => { return true; };
如果您在电话上查看ServicePointManager,则没有回调可以挂接到。这是拖欠的巨大痛苦。
您是否考虑过写信给服务所有者并询问他们为什么是不良的互联网公民? (基本上,您在这里看到的是正在实施的网络安全性,无论情况好坏)
正如Matt所说,您也许可以在Web服务器上编写一个简单的中继程序。它不一定是一项特殊服务,而可能只是一个网页,可以为您进行呼叫并吐出RAW文本或XML。您的电话客户端仅获取此页面并手动选择响应。
只要有强大的意志,必有一条路为你开。
路加
关于silverlight - 使用不受信任的证书制作WP7 HttWebRequest POST?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4401546/