none
讀網頁時遇到訊息"伺服器認可通訊協定違規. Section=ResponseHeader Detail=CR 必須在 LF 之前" RRS feed

  • 問題

  • 各位先進好

    最近在開發一支可以讀取網頁內容的程式
    對某個網站的網頁
    原本在使用HttpWebRequest的GetResponse都十分正常
    可以讀取到該網頁的內容加以解析

    但這幾天再作連線時
    發生了"伺服器認可通訊協定違規. Section=ResponseHeader Detail=CR 必須在 LF 之前"的錯誤訊息
    即使是用WebClient也是相同問題

    經上網查詢錯誤訊息
    答案解釋是因為對方 web server 在回傳http訊息的結尾只有 \n
    提出來的解答皆是要在 \n 前加上 \r

    但是我們程式只是被動的用
    GetResponse 等候對方 web server 的回傳
    無法加上 \r 等資料(還是可以?)
    更無法請對方修改他們的網頁

    請問在 vb 上開發遇到上述錯誤訊息時
    程式內可以如何解決

    謝謝各位

    2008年9月25日 下午 03:43

解答

  • RFCxxx 各項通訊協定 (包含 http) 都是規範換行指令為 <Cr><Lf>

    結束為 <Cr><Lf>.<Cr><Lf>

     

    可能對方網站是自己開發或是其他非標準方式,請對方檢查設定,否則無法連線是正常的,因為沒辦法判讀結尾,自然就掛在那邊。

     

    2008年9月25日 下午 04:55

所有回覆

  • RFCxxx 各項通訊協定 (包含 http) 都是規範換行指令為 <Cr><Lf>

    結束為 <Cr><Lf>.<Cr><Lf>

     

    可能對方網站是自己開發或是其他非標準方式,請對方檢查設定,否則無法連線是正常的,因為沒辦法判讀結尾,自然就掛在那邊。

     

    2008年9月25日 下午 04:55
  • 謝謝先進的回覆

    所以您的意思是
    除非對方修改其網頁表達方式
    否則我們也沒辦法處理?

    很傷腦筋呀


    2008年9月26日 上午 12:10
  • RFC 相關規範是全球遵循的依據。

     

    2008年9月26日 上午 05:29
  • 所以對方如果不遵從
    我們被動的程式就無法正常讀取?!

    那為何瀏覽器還是可以正常讀取該網頁?
    唯讀程式不可?

    還是該從瀏覽器的設計去研究?

    2008年9月26日 下午 12:59