C#HTTPS Post。Web服务器抛出“;“格式不好”;例外情况
我正在尝试从C#应用程序发送Https帖子。我可以连接到web服务器并对用户进行身份验证。服务器配置为通过一些数据发送POST查询。如果从浏览器尝试,服务器不会正确地重新发送。但是,当我尝试从我的应用程序中执行相同的查询时,服务器会响应一个错误,即 “服务器异常:格式不正确” 它是一个运行在Cent OS上的Apache Web服务器 下面是代码。谁能帮我一下吗。提前谢谢C#HTTPS Post。Web服务器抛出“;“格式不好”;例外情况,c#,C#,我正在尝试从C#应用程序发送Https帖子。我可以连接到web服务器并对用户进行身份验证。服务器配置为通过一些数据发送POST查询。如果从浏览器尝试,服务器不会正确地重新发送。但是,当我尝试从我的应用程序中执行相同的查询时,服务器会响应一个错误,即 “服务器异常:格式不正确” 它是一个运行在Cent OS上的Apache Web服务器 下面是代码。谁能帮我一下吗。提前谢谢 从浏览器尝试时服务器正确响应的POST链接示例: 我的C#代码: 服务器响应: 12790618993000服务器异
从浏览器尝试时服务器正确响应的POST链接示例:
我的C#代码:
服务器响应:
12790618993000服务器异常:格式不正确(无效令牌):第1行第7列我不确定您的格式有什么问题,但我可以建议您执行以下操作:
如果您尝试了,请告诉我它是否仍然不起作用。只是好奇-您尝试过WebClient吗?它会让你停止做一些手工工作,并可能解决任何问题。Fiddler(或者其他可以显示实际流量的东西)也很适合使用。我刚刚这么做了,发现post参数有问题。Fiddler是一个很好的工具,谢谢你给我指引了正确的方向。干杯,很高兴听到这个!如果你对我的回答满意,你能接受吗?
ServicePointManager.ServerCertificateValidationCallback = delegate
{ return true; };
NetworkCredential nc = new NetworkCredential("User", "Password");
CredentialCache cc = new CredentialCache();
cc.Add("https://some.server.com", 443, "Basic", nc);
HttpWebRequest WebRequest =
(HttpWebRequest)System.Net.WebRequest.Create("https://some.server.com/some/local_dir/abc.cgi");
WebRequest.KeepAlive = true;
WebRequest.Method = "POST";
WebRequest.AllowAutoRedirect = false;
WebRequest.Credentials = cc;
WebRequest.PreAuthenticate = true;
WebRequest.ContentType = "application/x-www-form-urlencoded";
WebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; " +
"Windows NT 5.1; SV1; .NET CLR 1.1.4322; " +
".NET CLR 2.0.50215)";
byte[] AuthBytes = Encoding.ASCII.GetBytes("User:Password");
string sAuth = Convert.ToBase64String(AuthBytes);
WebRequest.Headers.Add("Authorization", "Basic " + sAuth);
byte[] bytes = Encoding.UTF8.GetBytes("command=ACommand&entitytype=AnEntity");
using (Stream requestStream = WebRequest.GetRequestStream())
{
requestStream.Write(bytes, 0, bytes.Length);
}
try
{
WebResponse response = WebRequest.GetResponse();
Console.WriteLine(new StreamReader(response.GetResponseStream()).ReadToEnd());
}
catch (Exception ex)
{
Console.WriteLine("Exception: "+ex.Message);
}