16

これは私のコードです:

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;

WebResponse wr = req.GetResponse();

サーバーが 500 Internal Server Error を返すと、req.GetResponse() で例外がスローされます。GetResponse() にこの応答コードを受け入れてもらいたいのですが、渡された URL がこの応答コードをスローするのは正常です。Response Code 500 Internal Server Error にもかかわらず、Html を解析したいと思います。GetResponse() メソッドに応答コードを検証しないように言うことはできますか?

4

2 に答える 2

0

私はこのコードで解決しました:

class Program
{
    static void Main(string[] args)
    {
        var soap = @"<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/""><s:Body><GetData xmlns = ""http://tempuri.org/""><value>2</value></GetData></s:Body></s:Envelope>";

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://localhost:51148/Service1.svc");

        req.Headers.Add($"SOAPAction", "http://tempuri.org/IService1/GetData");
        req.ContentType = "text/xml;charset=\"utf-8\"";

        byte[] data = System.Text.Encoding.UTF8.GetBytes(soap);
        req.ContentLength = data.Length;

        req.Accept = "text/xml";
        req.Method = "POST";

        Stream stm = req.GetRequestStream();
        stm.Write(data, 0, data.Length);

        try
        {

            WebResponse response = req.GetResponse();
            Stream responseStream = response.GetResponseStream();
        }
        catch (WebException webex)
        {
            WebResponse errResp = webex.Response;
            using (Stream respStream = errResp.GetResponseStream())
            {
                StreamReader reader = new StreamReader(respStream);
                string text = reader.ReadToEnd();
            }
        }
    }
}
于 2017-11-06T01:07:47.900 に答える