【问题标题】:C# HttpWebRequest returning 500 Internal ErrorC# HttpWebRequest 返回 500 内部错误
【发布时间】:2011-11-23 18:48:33
【问题描述】:

我想知道为什么我的 HTTP 请求在响应中返回了 500 服务器内部错误。

我使用这个 C# 代码

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://svabyss.66ghz.com/getmsg.php");
req.ContentLength = ("receiver=" + b.ToString() + "&PHPSESSID=" + _SESSIONID).Length;
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.KeepAlive = true;
req.CookieContainer = new CookieContainer();
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
req.Headers[HttpRequestHeader.Pragma] = "cache";
req.UseDefaultCredentials = true;
req.Credentials = CredentialCache.DefaultNetworkCredentials;
req.PreAuthenticate = true;
req.Proxy = new WebProxy("http://svabyss.66ghz.com:80", true);
StreamWriter writer = new StreamWriter(req.GetRequestStream());
writer.Write("receiver=" + b.ToString() + "&PHPSESSID=" + _SESSIONID);
writer.Flush();
writer.Dispose();
try
{
    HttpWebResponse response = (HttpWebResponse)req.GetResponse();
    StreamReader reader = new StreamReader(response.GetResponseStream());
    OperationCompleted(new SVWorkerEventArgs("GET|" + b.ToString(), reader.ReadToEnd()));
    response.Close();
    reader.Dispose();
}
catch (WebException ex)
{
    StreamReader str = new StreamReader(ex.Response.GetResponseStream());
    string err = str.ReadToEnd();
}

我不知道我错过了哪个标题。任何帮助都会很棒!

谢谢..

问题已解决

我收到了服务器返回的错误消息的回复。错误信息其实是我想要的结果。

现在,我不在乎服务器回复我什么。无论是 404 还是 505,返回的错误信息都是我想要的..

谢谢大家:)

【问题讨论】:

  • 你试过没有Proxy吗?
  • 为什么要指定所有这些设置?
  • 我的第一个代码只是req.ContentType = "application/x-www-form-urlencoded"; 我只设置了这些标头值,它返回了相同的错误

标签: c# httpwebrequest web internal-server-error


【解决方案1】:

返回 500 错误代码是因为服务器(不是您的客户端)遇到内部错误。要找出错误是什么,您需要访问服务器的日志,或者需要询问有权访问的人。

完全有可能错误是由代码中的某些内容引起的,但是如果不知道另一端的错误是什么,则无法确定。它可以很容易地成为他们代码中的某些东西,或者与他们的数据库的连接等。

【讨论】:

    【解决方案2】:

    我建议您在运行 Fiddler 时使用浏览器发出请求: http://www.fiddler2.com/fiddler2/

    看看那里使用的标题。

    【讨论】:

    • POST http://svabyss.66ghz.com/getmsg.php?receiver=putra HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Agent: abyss Host: svabyss.66ghz.com Content-Length: 42 Expect: 100-continue PHPSESSID=119f0d7a53a2d8e30282701d5ca856bd 这是提琴手头请求RAW。我不知道那里发生了什么..
    • 你对目标页面有控制权吗?还是它归他人所有?另外,我会尝试在 WebRequest.Create("svabyss.66ghz.com/getmsg.php"); 中附加查询字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2013-07-24
    相关资源
    最近更新 更多