NameResolutionFailure在Mono中但不是.NET

Sly*_*Fly 6 .net c# mono

我正在使用C#进行HTTPS POST请求(与HTTP相同的问题)

byte[] byteArray = Encoding.UTF8.GetBytes("var1=blah&var2=hah");
HttpWebRequest request = (HttpWebRequest)(WebRequest.Create("https://www.example.com"));
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
request.Method = "POST";
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

当我不需要通过代理时,前面的代码在.NET和Mono中都很有效.当我必须使用代理时,它在.NET上运行时有效,但在Mono中失败并出现以下情况

WebException: Error: NameResolutionFailure
    at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
    at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in <filename unknown>:0
Run Code Online (Sandbox Code Playgroud)

此外,在具有相同代理配置的浏览器中运行也可正常工作.任何理由为什么Mono会抛出一个NameResolutionFailure而.NET却没有?

有一个类似的stackoverflow问题,在创建请求时使用直接ip,然后将域添加到request.Host.但是,我必须经历的代理拒绝这种请求.救命!

操作系统是Windows 7,单声道版本是2.6.5

W92*_*W92 1

提示:首先检查您手机中的网页浏览情况。如果会出现同样的情况——那么你就得担心了。我遇到了同样的情况,并且当模拟器没有网络权限时,它总是发生。在普通设备上尝试。