Gibt es eine Möglichkeit, nicht-Erfolg http Daten, zum Beispiel für eine 404
, in Rebol zu lesen? Wenn open
einen nicht erfolgreichen HTTP-Antwortcode für eine URL erhält, schlägt es mit einem Fehler fehl, aber ich möchte stattdessen die Antwort lesen.Lesen Sie nicht erfolgreich http Daten in Rebol
Antwort
Ich weiß, das Rohöl ist, aber es funktioniert für Rebol 2. Sie können das HTTP-Protokoll Schema erhalten mit
h: get in system/schemes 'http
dann schreiben Sie es in eine Datei
write %ht mold h
und bearbeiten Sie diese Datei . Dort ersetzen Sie diese Zeile
result: select either tunnel [tunnel-actions] [response-actions] response-code
mit
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
]
]
Dann müssen Sie die ursprüngliche Regelung ersetzen. In
Rebol [] system/schemes/http:
am beginnung Ihrer ht-Datei und tut es mit do %ht
Ja, das funktioniert (sehr hackisch :)). Ich sehe, dass der http-Schema-Code nicht ganz das tut, was ich will, ohne eine gewisse Anpassung. Was ich wirklich möchte, ist, sowohl Daten, Antwortcode und Header für eine Anfrage zu bekommen. Glücklicherweise ist dieser Code sowieso nicht schwer zu schreiben. – rnyberg
Ich habe die unbehandelten Antwortcodes an einer Stelle hinzugefügt, die Sie abfragen können. – sqlab
ich nicht der spezifischen Antwort wissen, aber sehe [wie den Antwortinhalt einer HTTP 404-Antwort zu bekommen] (http://stackoverflow.com/questions/17829211/how-to-get-the-response-content-of-an-http-404-response). Ich denke, es sollte eine bessere Antwort geben, es ist jetzt Open Source, siehe [prot-http.r] (https://github.com/rebol/rebol/blob/master/src/mezz/prot-http.r)! :-) – HostileFork
Danke @HostileFork! Ich weiß nicht, wie ich diese Frage verpasst habe. Sehr aufschlussreich. :) Es ist bedauerlich, dass man das HTTP-Schema dafür anpassen muss. Ich habe mir den Rebol 3-Code allerdings noch nicht angesehen. – rnyberg