服務器提交協議衝突 Section=ResponseStatusLine 的解決辦法

  最近發現對有的網站用HttpWebrequest抓取網頁的時候會報錯,捕獲異常提示:"服務器提交了協議衝突 Section=ResponseStatusLine ”,改用WebClient也是同樣問題。

  WebClient是對HttpWebrequest進一步進行了封裝。
  最後終於找到問題根源:The  server  committed  a  protocol  violation.  Section=ResponseHeader  Detail=CR  must  be  followed  by  LF 微軟沒有容忍不符合RFC  822中的httpHeader必須以CRLF結束的規定的服務器響應。
通過修改配置文件解決:在app.config(WinForm)或web.config(Web)文件裏修改。

WinForm下的app.config默認不存在,手動在Debug文件夾所在的同級目錄下新建一個XML配置文件,內容爲:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
        <settings>
            <httpWebRequest  useUnsafeHeaderParsing= "true "  />
        </settings>
    </system.net>
</configuration>

發佈了48 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章