C# 错误403:尝试进行POST API调用时禁止

C# 错误403:尝试进行POST API调用时禁止,c#,soap,certificate,soapui,x509certificate2,C#,Soap,Certificate,Soapui,X509certificate2,我有一个用C#和MVC构建的dotnet应用程序。我必须使用SOAPUI API,但在尝试执行此操作时出现错误403,即使我可以访问P12证书及其密码。我已经在下面粘贴了代码,跳过了任何不重要的部分 public string anotherPostDataAttempt() { try { X509Certificate2 cert = new X509Certificate2 (@"C:\Users\...\Visual Studio

我有一个用C#和MVC构建的dotnet应用程序。我必须使用SOAPUI API,但在尝试执行此操作时出现错误403,即使我可以访问P12证书及其密码。我已经在下面粘贴了代码,跳过了任何不重要的部分

public string anotherPostDataAttempt()
{
    try
    {
        X509Certificate2 cert = new X509Certificate2
             (@"C:\Users\...\Visual Studio 2015\Projects\...\certificateFile.P12", "thisIsThePassword");
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(True);

        string url = "https://...";
        //HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

        string xmlString = "";
        StreamReader f_read = new StreamReader(@"C:\Users\...\Desktop\testFile.xml");
        xmlString = f_read.ReadToEnd();
        f_read.Close();


        string DataToPost = xmlString;

        String result = "";
        String strPost = "RequestXML=" + DataToPost;
        StreamWriter myWriter = null;
        HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
        objRequest.Method = "POST";
        objRequest.ContentLength = strPost.Length;
        //objRequest.ContentType = "text/xml; charset=utf-8";
        objRequest.ContentType = "application/x-www-form-urlencoded";
        //objRequest.Credentials = CredentialCache.DefaultNetworkCredentials;

        objRequest.ClientCertificates.Add(cert);
        try
        {
            myWriter = new StreamWriter(objRequest.GetRequestStream());
            myWriter.Write(strPost);
        }
        catch (Exception e)
        {
            //
        }
        finally
        {
            myWriter.Close();
        }

        //The program crashes on the line below
        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
        using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
        {
            result = sr.ReadToEnd();
            // Close and clean up the StreamReader
            sr.Close();
        }
        return result;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
记录在案,我已经咨询过了,但我猜我一定是做错了什么,否则我就不会犯这个错误

完全错误:

System.Net.WebException: The remote server returned an error: (403) Forbidden.
InnerException: Null.
Message: The remote server returned an error: (403) Forbidden.

增加了更多细节。很抱歉。还要检查相关注释的代码,看看它在哪里崩溃OK..这意味着当你将数据发送到服务器端时,服务器端出现了一些错误,所以请调试你的服务器代码好的,有什么特别需要我注意的吗?XML文件/结构?C代码?程序一到那一行就崩溃了。在此之前,一切看起来都很好。这可能是数据或xml格式的错误,也可能是其他错误,因此您必须从该函数开始调试。因此,您可以在调试时尝试捕获有关错误的详细信息