ASP.NET ProtocolViolationException-无法发送具有此谓词类型的内容正文

本文关键字:类型 谓词 正文 ProtocolViolationException- NET ASP | 更新日期: 2023-09-27 18:00:46

为什么req.GetRequestStream().Close()原因"ProtocolViolationException-无法发送具有此谓词类型的内容正文。"代码片段来自此处。谢谢

        WebRequest req = null;
        WebResponse rsp = null;
        try
        {
            string fileName = "Login.xml";
            string uri = "http://localhost/api/login";
            req = WebRequest.Create(uri);
            //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy
            req.Method = "POST";        // Post method
            req.ContentType = "text/xml";     // content type
            // Wrap the request stream with a text-based writer
            StreamWriter writer = new StreamWriter(req.GetRequestStream());
            // Write the XML text into the stream
            writer.WriteLine(this.GetTextFromXMLFile(fileName));
            writer.Close();
            // Send the data to the webserver
            rsp = req.GetResponse();
        }
        catch (WebException webEx)
        {
            LOG.Error(webEx.StackTrace.ToString());
        }
        catch (Exception ex)
        {
            LOG.Error(ex.StackTrace.ToString());
        }
        finally
        {
            if (req != null) req.GetRequestStream().Close();
            if (rsp != null) rsp.GetResponseStream().Close();
        }

ASP.NET ProtocolViolationException-无法发送具有此谓词类型的内容正文

您是否尝试过使用req.ContentType = application/xml而不是text/xml