Ich habe eine Delphi-Bibliothek für die StackApps API geschrieben.
Ich habe ein Problem mit Indy. Ich verwende die Version, die mit Delphi 2010 geliefert wird. Wenn Sie ungültige Parameter an eine der StackApps-API übergeben, wird ein HTTP-Fehlercode 400 zurückgegeben und in der Antwort wird ein JSON-Objekt mit weiteren Details enthalten sein.
Indem Sie http://api.stackoverflow.com/0.8/stats/?Key=BadOnPurpose im Chrome-Browser besuchen, können Sie ein Beispiel sehen. I.E. und Firefox verstecken das JSON.
Mit WireShark kann ich sehen, dass das JSON-Objekt mit dem folgenden Code zurückgegeben wird, aber ich kann nicht über Indy darauf zugreifen.
Für diesen Testcode habe ich eine TIdHttp-Komponente auf das Formular gezogen und den folgenden Code in einen Klick-Button platziert.
procedure TForm10.Button2Click(Sender: TObject);
var
SS : TStringStream;
begin
SS := TStringStream.Create;
IdHTTP1.Get('http://api.stackoverflow.com/0.8/stats/?Key=BadOnPurpose',SS,[400]);
Memo1.Lines.Text := SS.DataString;
SS.Free;
end;
Ich habe [400] übergeben, damit keine 400-Ausnahme ausgelöst wird. Es ist, als ob Indy aufgehört hätte, die Antwort zu lesen. Da der Inhalt von Memo1 leer ist.
Ich suche nach einem Weg, um an die JSON-Details zu gelangen.