1

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 のいずれであっても、返されるエラー メッセージは私が望むものです..

みんなありがとう :)

4

2 に答える 2

1

サーバー (クライアントではない) で内部エラーが発生したため、500 エラー コードが返されます。エラーの内容を確認するには、サーバーのログにアクセスするか、アクセスできる人に尋ねる必要があります。

コード内の何かが原因でエラーが発生している可能性は十分にありますが、相手側のエラーが何であるかを知らなければ、それを確認する方法はありません。コード内の何か、またはデータベースへの接続などと同じくらい簡単にできます。

于 2011-11-23T18:52:03.080 に答える
1

Fiddler の実行中にブラウザでリクエストを行うことをお勧めします: http://www.fiddler2.com/fiddler2/

そこで使用されているヘッダーを見てください。

于 2011-11-23T18:52:19.473 に答える