服務器提交協議衝突 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>

編譯以後會在Debug下面自動創建一個 程序名.exe.config 的配置文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章