當印地收到了404,我不能得到的迴應內容,其總是空的沒有反應的內容。德爾福印後404
例如,使用印地訪問https://www.etsy.com/people/car,我得到一個404和contentstream(或分配流)僅僅是空的。 與THttpClient一樣,我也得到了404,但也得到了響應流中404頁面的內容。
所以我的問題是,如何才能得到響應內容與印時,其404?
當印地收到了404,我不能得到的迴應內容,其總是空的沒有反應的內容。德爾福印後404
例如,使用印地訪問https://www.etsy.com/people/car,我得到一個404和contentstream(或分配流)僅僅是空的。 與THttpClient一樣,我也得到了404,但也得到了響應流中404頁面的內容。
所以我的問題是,如何才能得到響應內容與印時,其404?
using Indy to access https://www.etsy.com/people/car , I get a 404 and contentstream (or assigned stream) is just empty.
這是設計時的默認行爲,用於防止使用未請求的意外錯誤數據來破壞輸出。
how can I get the response content with Indy when its a 404?
有兩種可能的方式:
默認情況下,TIdHTTP
提出了一個HTTP錯誤的EIdHTTPProtocolException
例外。響應數據將在其ErrorMessage
屬性中。
您可以通過避免引發的異常:
使hoNoProtocolErrorException
國旗在TIdHTTP.HTTPOptions
財產。
使用TIdHTTP.Get()
的重載版本,它具有AIgnoreReplies
參數,並在該參數中傳遞404(或任何其他所需的錯誤響應代碼)。
無論哪種方式,通過默認響應數據將仍然被丟棄。您可以避免在TIdHTTP.HTTPOptions
屬性中啓用最近添加的hoWantProtocolErrorContent
標誌(請參閱New TIdHTTP flags and OnChunkReceived event)。
謝謝雷米,回答完全接受。我使用ErrorMessage值,它現在工作得很好! – Softtouch
是存儲在EIdHTTPProtocolException'的'了'ErrorMessage'的內容,像印第403錯誤:http://stackoverflow.com/questions/607876/indy-http-reading-response-content-on -a-403 –