У меня есть браузер, интегрированный в мое приложение deplhi (IE). Мне нужно вызвать определенное веб-приложение, и мне нужно добавить новую переменную в заголовок для всех запросов, поступающих из браузера моего приложения, например, jquery добавляет в xhrobj параметр HTTP_X_REQUESTED_WITH
. Любая идея о том, как я могу это сделать? примеры кода было бы здорово. Я использую TWebBrowser
.
Изменить requestHeaders в пользовательском браузере в delphi
Ответы (2)
Вы можете изменить заголовки с помощью события OnBeforeNavigate2
:
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
NewHeaders: OleVariant;
begin
// do not allow frames or iframes to raise this event
if (pDisp as IUnknown) = (WebBrowser1.ControlInterface as IUnknown) then
begin
// avoid stack overflow: check if our custom header is already set
if Pos('MyHeader', Headers) <> 0 then Exit;
// cancel the current navigation
Cancel := True;
(pDisp as IWebBrowser2).Stop;
// modify headers with our custom header
NewHeaders := Headers + 'MyHeader: Value'#13#10;
(pDisp as IWebBrowser2).Navigate2(URL, Flags, TargetFrameName, PostData, NewHeaders);
end;
end;
person
kobik
schedule
09.02.2012
IWebBrowser2.Navigate имеет параметр, позволяющий определить дополнительные заголовки.
person
Community
schedule
09.02.2012