我遵循了Eric 的建议,它工作正常,但通过 HttpWebRequest 使用 https 的请求无法连接。在 Fiddler 中,我看到一个似乎返回正常的 Connect 请求,然后我的 HttpWebRequest 收到带有 ArgumentNullException 的结果。
这是异常的调用堆栈:
at System.IO.StringReader..ctor(String s)
at System.Net.Browser.HttpWebRequestHelper.ParseHeaders(Uri requestUri, SecurityCriticalDataForMultipleGetAndSet`1 headers, WebHeaderCollection collection, Boolean removeHttpOnlyCookies, HttpStatusCode& status, String& statusDescription)
at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, Int32 expectedLen, CookieContainer cookieContainer)
at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, CookieContainer cookieContainer)
at System.Net.Browser.ClientHttpWebRequest.Failed(Object sender, EventArgs e)
at MS.Internal.InternalWebRequest.OnDownloadFailed(Object sender, ErrorEventArgs args)
at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
浏览器工作正常,我猜这是手机上的 .Net 和 Fiddler 代理之间的某种问题。顺便说一句,在真正的手机甚至 iPad 上也会发生同样的事情(这意味着这不是 .Net 特定的问题)
可以修复吗?
编辑:我可能反对一些我不理解的安全限制。我尝试了https://wellsfargo.com和https://mail.google.com并且在使用 Fiddler 时都返回“未找到”异常。