C# 有单核细胞增多的问题

C# 有单核细胞增多的问题,c#,mono,httpwebrequest,monodevelop,C#,Mono,Httpwebrequest,Monodevelop,我刚刚从ubuntu软件中心安装了monodevelop,并创建了一个解决方案。我正在尝试执行WebRequest.create(url)。但它不断抛出“身份验证或解密失败”。我做错了什么?如果我没有做错什么,我应该怎么做才能使上述工作 我已经对此进行了搜索,但无法找到解决问题的方法 这就是我所做的 public static string AccessURL(string url, string postcontent) { WebRequest request = W

我刚刚从ubuntu软件中心安装了monodevelop,并创建了一个解决方案。我正在尝试执行WebRequest.create(url)。但它不断抛出“身份验证或解密失败”。我做错了什么?如果我没有做错什么,我应该怎么做才能使上述工作

我已经对此进行了搜索,但无法找到解决问题的方法

这就是我所做的

public static string AccessURL(string url, string postcontent)
    {
        WebRequest request = WebRequest.Create(url);
        request.Method = "POST";
        byte[] byteArray = Encoding.UTF8.GetBytes(postcontent);
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        WebResponse response = request.GetResponse();
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        reader.Close();
        dataStream.Close();
        response.Close();
        return responseFromServer;
    }

提前谢谢

该错误表明您正在尝试访问SSL/TLS加密的资源。Mono默认情况下不信任任何这些站点,由开发人员决定您是否要访问该资源。更多关于这方面的信息,请访问

因此,一种方法是在类中实现ServerCertificateValidationCallback:

using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;

public class MyAwesomeProgram
{
    public MyAwesomeProgram() 
    {
        ServicePointManager.ServerCertificateValidationCallback =
                ValidateServerCertficate;
    }

    private static bool ValidateServerCertficate(object sender, X509Certificate certificate,
        X509Chain chain, SslPolicyErrors sslpolicyerrors)
    {
        //This is where you should validate the remote certificate
        return true;
    }

    public void FetchAwesomeStuff (string url) 
    {
        var wr = WebRequest.Create (url);
        var stream = wr.GetResponse().GetResponseStream ();
        Console.WriteLine (new StreamReader (stream).ReadToEnd ());
    }
}

下面有更多的例子注意上面的示例忽略安全性并接受所有证书,即使是您可能不信任的证书。这是不推荐使用的

该错误表明您正在尝试访问SSL/TLS加密的资源。Mono默认情况下不信任任何这些站点,由开发人员决定您是否要访问该资源。更多关于这方面的信息,请访问

因此,一种方法是在类中实现ServerCertificateValidationCallback:

using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;

public class MyAwesomeProgram
{
    public MyAwesomeProgram() 
    {
        ServicePointManager.ServerCertificateValidationCallback =
                ValidateServerCertficate;
    }

    private static bool ValidateServerCertficate(object sender, X509Certificate certificate,
        X509Chain chain, SslPolicyErrors sslpolicyerrors)
    {
        //This is where you should validate the remote certificate
        return true;
    }

    public void FetchAwesomeStuff (string url) 
    {
        var wr = WebRequest.Create (url);
        var stream = wr.GetResponse().GetResponseStream ();
        Console.WriteLine (new StreamReader (stream).ReadToEnd ());
    }
}

下面有更多的例子注意上面的示例忽略安全性并接受所有证书,即使是您可能不信任的证书。这是不推荐使用的

你能发布到目前为止你拥有的代码吗,这说明了这个问题?你正在访问
https
站点吗?你能发布到目前为止你拥有的代码吗,这说明了这个问题吗?你正在访问
https
站点吗?它说ServicePointManager已经过时了。使用ServerCertificateValidationCallback。如果我使用它,它表示它在当前上下文中不存在!刚刚更新了我的答案,改为使用ServerCertificateValidationCallback。非常感谢,它现在对我来说运行良好!这对http和https调用都有效吗?是的,应该对两者都有效。ServerCertificateValidationCallback将在需要时被调用。很抱歉,需要澄清的是,在代码示例中什么时候调用了FetchAwesomeStuff(),它说ServicePointManager已过时。使用ServerCertificateValidationCallback。如果我使用它,它表示它在当前上下文中不存在!刚刚更新了我的答案,改为使用ServerCertificateValidationCallback。非常感谢,它现在对我来说运行良好!这对http和https调用都有效吗?是的,应该对两者都有效。ServerCertificateValidationCallback将在需要时被调用。很抱歉,需要澄清的是,在您的代码示例中,什么时候调用了FetchAwesomeStuff()??