C# 错误403:尝试进行POST API调用时禁止
我有一个用C#和MVC构建的dotnet应用程序。我必须使用SOAPUI API,但在尝试执行此操作时出现错误403,即使我可以访问P12证书及其密码。我已经在下面粘贴了代码,跳过了任何不重要的部分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
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格式的错误,也可能是其他错误,因此您必须从该函数开始调试。因此,您可以在调试时尝试捕获有关错误的详细信息