0
我目前正在爲我的Ruby應用程序開發一些POST請求,並收到與wrong status line
有關的錯誤。綜觀文檔,如果下面的正則表達式匹配的異常將會被拋出:Ruby HTTP的read_status_line是做什麼的?
def read_status_line(sock)
str = sock.readline
m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str) or
raise Net::HTTPBadResponse, "wrong status line: #{str.dump}"
m.captures
end
我很好奇的正則表達式實際上是試圖匹配?
/\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str)
喔!我正在檢查'sock.readline',並且得到以下結果'「HTTP/1.1 1 CUSTOM」',它與該正則表達式不匹配。 – theGreenCabbage
按照規範,狀態代碼應該以正則表達式中的NNN或'\ d \ d \ d'表示。 '1'無效。你正在處理一個不好的HTTP實現。如果你真的被卡住了,需要這些代碼來處理那個可怕的破壞的服務器,也許可以用一個測試與'\ d +'相反的方法來修補這個方法。醜陋,但有時是必要的。 – tadman
好的,謝謝。現在我必須弄清楚爲什麼我得到'HTTP/1.1 1 CUSTOM'。你有什麼想法嗎? – theGreenCabbage