关于 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF 错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF 错误相关的知识,希望对你有一定的参考价值。

用WebClient 去下载数据时发现有服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF错误,解决办法

1.在app.config种添加 web 在 web.config种添加

 

 <system.net>

 

    <settings>

 

      <httpWebRequest useUnsafeHeaderParsing="true" />

 

    </settings>

 

  </system.net>
 
2.以反射的形式在程序中设定useUnsafeHeaderParsing的值【该方法须在发送请求之前进行设定否则无效果】
public static bool SetAllowUnsafeHeaderParsing(bool useUnsafe)
        {
            //Get the assembly that contains the internal class
            System.Reflection.Assembly aNetAssembly = System.Reflection.Assembly.GetAssembly(typeof(System.Net.Configuration.SettingsSection));
            if (aNetAssembly != null)
            {
                //Use the assembly in order to get the internal type for the internal class
                Type aSettingsType = aNetAssembly.GetType("System.Net.Configuration.SettingsSectionInternal");
                if (aSettingsType != null)
                {
                    //Use the internal static property to get an instance of the internal settings class.
                    //If the static instance isn\'t created allready the property will create it for us.
                    object anInstance = aSettingsType.InvokeMember("Section",
                      System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.NonPublic, null, null, new object[] { });

                    if (anInstance != null)
                    {
                        //Locate the private bool field that tells the framework is unsafe header parsing should be allowed or not
                        System.Reflection.FieldInfo aUseUnsafeHeaderParsing = aSettingsType.GetField("useUnsafeHeaderParsing", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                        if (aUseUnsafeHeaderParsing != null)
                        {
                            aUseUnsafeHeaderParsing.SetValue(anInstance, useUnsafe);
                            return true;
                        }
                    }
                }
            }
            return false;
        }

 

以上摘抄于http://www.cnblogs.com/lewisli/p/6775010.html

 

以上是关于关于 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF 错误的主要内容,如果未能解决你的问题,请参考以下文章

服务器提交了协议冲突. Section=ResponseHeader Detail=“Content-Length”标题值无效

HttpWebRequest出错 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF

服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF

服务器提交了协议违规。 Section = ResponseStatusLine“对于PHP webservice

C#发送邮件错误: System.net.mail.smtpException;服务器提交了协议冲突 服务器响应为: .

c# winform httpWebResponse post出错