2014-03-28 6 views
5

Rebol에서 성공하지 못한 http 데이터 (예 : 404)를 읽을 수있는 방법이 있습니까? open이 URL에 대해 성공하지 못한 HTTP 응답 코드를 얻으면 오류가 발생하지만 실패합니다. 대신 응답을 읽으 려합니다.Rebol에서 성공하지 않은 http 데이터 읽기

+0

와 나는 특정 대답을 잘 모르겠지만, HTTP ([하는 HTTP 404 응답의 응답 내용을 얻는 방법] 참조 ://stackoverflow.com/questions/17829211/how-to-get-the-response-content-of-an-http-404-response). 더 나은 대답이 있어야한다고 생각합니다. 오픈 소스입니다. [prot-http.r] (https://github.com/rebol/rebol/blob/master/src/mezz/prot-http.r)를 참조하십시오! :-) – HostileFork

+0

고마워요 @HostileFork! 나는 그 질문을 어떻게 놓쳤는 지 모른다. 매우 계몽. :) 이것에 대해 http 체계를 사용자 정의해야한다는 것은 불행한 일입니다. 나는 아직 Rebol 3 코드를 보지 못했다. – rnyberg

답변

4

나는이 원유 알고 있지만, REBOL 2. 작동 당신은

h: get in system/schemes 'http 

로 http 프로토콜 방식을 얻을 수있는 다음 파일

write %ht mold h 

에 작성하고이 파일을 편집 . 거기 당신은 그럼 당신은 원래의 계획을 교체해야

port/status: response-code 
result: case [ 
    tunnel [ 
     select tunnel-actions response-code 
    ] 
    not find response-actions response-code [ 
     return response-code 
    ] 
    true [ 
     select response-actions response-code 
    ] 
] 

와 함께이 라인

result: select either tunnel [tunnel-actions] [response-actions] response-code 

를 교체합니다. 당신의 HT-파일의 beginnung에
Rebol [] system/schemes/http:
을 추가 할을 do %ht

+0

예,이 방법이 매우 효과적입니다 (:). 나는 http 스키마 코드가 어떤 custimization없이 내가 원하는 것을하지 않는다는 것을 알았다. 내가 정말로 원하는 것은 데이터, 응답 코드 및 헤더를 모두 요청하는 것입니다. 다행히도 그 코드는 어쨌든 쓰기가 어렵지 않습니다. – rnyberg

+0

쿼리 할 수있는 곳에서 처리되지 않은 응답 코드를 추가했습니다. – sqlab