Bekomme Antwort von TIdHttp mit Fehlercode 400

8

Ich habe eine Delphi-Bibliothek für die StackApps API geschrieben.

Ich bin auf ein Problem mit Indy gestoßen. Ich verwende die Version, die mit Delphi 2010 ausgeliefert wird. Wenn Sie ungültige Parameter an eine der StackApps-API übergeben, wird ein HTTP-Fehlercode 400 zurückgegeben und dann in der Antwort ein JSON-Objekt mit weiteren Details enthalten.

Wenn Sie im Chrome-Browser Ссылка besuchen, sehen Sie ein Beispiel. I.E. und Firefox versteckt den JSON.

Mit WireShark kann ich sehen, dass das JSON-Objekt mit dem folgenden Code zurückgegeben wird, aber ich kann nicht mit Indy darauf zugreifen.

Für diesen Testcode habe ich eine TIdHttp-Komponente in das Formular eingefügt und den folgenden Code in einen Button-Klick eingefügt.

%Vor%

Ich habe [400] bestanden, so dass die 400 Ausnahme nicht ausgelöst wurde. Es ist, als hätte Indy aufgehört, die Antwort zu lesen. Da der Inhalt von Memo1 leer ist.

Ich suche nach einer Möglichkeit, die JSON-Details zu erhalten.

    
Robert Love 10.06.2010, 20:43
quelle

1 Antwort

14

Entfernen Sie den AIgnoreReplies-Parameterwert von Ihrem Aufruf von Get (). Lass es die Ausnahme normal auslösen. Der gesuchte JSON-Text befindet sich in der EIdHTTPProtocolException.ErrorMessage-Eigenschaft. Zum Beispiel:

%Vor%     
Remy Lebeau 10.06.2010, 22:55
quelle

Tags und Links