Я пишу библиотеку Delphi для StackApps API.
Я столкнулся с проблемой с Инди. Я использую версию, которая поставляется с Delphi 2010.
Если вы передадите недопустимые параметры в один из API-интерфейсов StackApps, он вернет код ошибки HTTP 400, а затем в ответе будет содержать объект JSON с более подробной информацией.
Посетив http://api.stackoverflow.com/0.8/stats/?Key=BadOnPurpose в браузере Chrome, вы можете увидеть пример. И.Е. и Firefox скрывают JSON.
Используя WireShark, я вижу, что объект JSON возвращается с использованием приведенного ниже кода, но я не могу получить к нему доступ с помощью Indy.
Для этого тестового кода я уронил компонент TIdHttp в форму и поместил следующий код в нажатие кнопки.
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;
Я прошел [400], чтобы он не вызывал исключение 400. Как будто Инди перестала читать ответ. Поскольку содержимое Memo1 пустое.
Я ищу способ получить детали JSON.