TIdHttp возвращает JSON, TWebBrowser возвращает xml из запроса к серверу Tableau - PullRequest
0 голосов
/ 29 июня 2018

На более любопытных задачах в саге Delphi / Indy / TWebBrowser / Tableau.

Мне очень трудно понять, почему отправка запроса GET на сервер Tableau с использованием компонента TIdHttp всегда возвращает ответ JSON, в то время как один и тот же запрос в элементе управления TWebBrowser с тем же заголовком auth возвращает ответ XML.

Я немного предпочитаю XML - хотя он и требует большей полосы пропускания - поскольку у нас много инфраструктуры XML и в настоящее время нет инфраструктуры JSON.

Когда я отправляю запрос с компонентом TIdHttp, я отправляю его со следующими параметрами:

  http.Request.CustomHeaders.Text := GetAuthHeader(FToken);
  http.Request.ContentType := 'application/json';

Я тоже пробовал это:

  http.Request.ContentType := 'text/xml';
  http.Request.Accept := 'text/xml';

И

  http.Request.ContentType := 'application/xml';
  http.Request.Accept := application/xml';

И

  <no settings specified for accept and contenttype, just let it use the defaults>

...

  sHTML := http.Get('http://<myserver>/api/3.0/sites/' + FSiteId + '/views')

... и всегда получать ответ в формате JSON.

Когда я отправляю тот же запрос с TWebBrowser:

var
  hdr,flags,targetframe,postdata,Aurl: OleVariant;
begin
  AUrl := http://<myserver>/api/3.0/sites/' + FSiteId + '/views';
  flags := navNoHistory+navNoReadFromCache+navNoWriteToCache;
  targetframe := 1;
  postdata := 1;
  hdr := GetAuthHeader(FToken);
  Navigate2(Aurl,flags,targetframe,postdata,hdr);
end;

... ответ всегда возвращается в виде XML.

Кто-нибудь понимает, почему это произошло? Я попытался зарегистрировать необработанный запрос, чтобы увидеть, как он настраивается TWebBrowser, но не могу получить необработанный запрос. Возможно, мне следует настроить прокси-сервер ...

ТИА

1 Ответ

0 голосов
/ 29 июня 2018

Решено - было

http.Request.ContentType := 'application/json...';

и

http.Request.Accept := 'application/json...';

все еще висит вокруг события создания формы.

...