AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Post Data mit neuem TEdgeBrowser

Post Data mit neuem TEdgeBrowser

Ein Thema von AuronTLG · begonnen am 20. Aug 2020 · letzter Beitrag vom 4. Dez 2020
Antwort Antwort
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#1

AW: Post Data mit neuem TEdgeBrowser

  Alt 17. Sep 2020, 10:17
Zuerst stell sicher, dass du die neuste Version der Webview hast.

Dann ist das Ereignis "OnWebResourceRequested" der Webview entscheidend.

Für POSTDATA ist der Code bei mir:

Code:
If Request.Uri = Url
  Then Begin
       Request.Method := 'POST';
       Request.Header['Content-Type'] := 'application/x-www-form-urlencoded';
       Request.Content := TEncoding.UTF8.GetBytes(StrParameter);
       End
"StrParameter" ist hierbei der zu übergebende Inhalt. Bei mir z.B. bestimmte Login-Daten.
"Url" ist bei mir die entsprechende Basis-URL des Webshops.
Empfangen geht im selben Ereigniss umgekehrt über "If Request.Uri = 'http://127.0.0.1/'", wobei man den Inhalt hier dann genau umgekehrt aus Request.Content entnehmen kann.

Es ist ein bisschen her, weswegen ich nicht mehr genau weiß, wie entscheidend das war, aber ich habe noch folgendes im "OnActive"-Ereignis der Webview stehen:

Code:
WebView.AddFilter(Url);
WebView.AddFilter(HOOKURL);
HOOKURL ist meine Konstante für 'http://127.0.0.1/'; Wie gesagt, ich weiß gerade nicht, ob das wichtig war.
  Mit Zitat antworten Zitat
ReinerS

Registriert seit: 17. Sep 2020
5 Beiträge
 
#2

AW: Post Data mit neuem TEdgeBrowser

  Alt 17. Sep 2020, 13:07
Danke, werd Ich ausprobieren
  Mit Zitat antworten Zitat
ReinerS

Registriert seit: 17. Sep 2020
5 Beiträge
 
#3

AW: Post Data mit neuem TEdgeBrowser

  Alt 29. Sep 2020, 14:28
Werden bei dir die Postdata richtig verschickt?

wenn Ich den Datenverkehr mit Fiddler überwache werden keine Postdata verschickt.

anbei ein kleines Demoprogramm
postdata werden aus einer Datei geladen
sUrlFilter wird zum Filtern in on WebResourceRequested verwendet, damit Postdata nur einmal geladen werden.
WebResourceRequested wird aber auch nur einmal aufgerufen.

procedure TForm1.Button1Click(Sender: TObject);
begin
sUrlFilter:='https://connect.zander.online/api/v1.0/shop/gateway/ids/execute';
WebView1.Visible:=true;
WebView1.Uri:='https://connect.zander.online/api/v1.0/shop/gateway/ids/execute'
end;

procedure TForm1.WebView1Active(Sender: TObject);
begin
WebView1.AddFilter('https://connect.zander.online/*');
end;

procedure TForm1.WebView1WebMessageReceived(Sender: TObject; const Source,
Message, Json: string);
begin
MessageDlg(Message,mtInformation,[mbOK],0);
end;

procedure TForm1.WebView1WebResourceRequested(Sender: TObject;
const Request: TWebResourceRequest; var Response: TWebResourceResponse);
var
s,sBoundary:String;
fs:TFileStream;
begin
s:=ReQuest.Uri;
if (sUrlFilter<>'') and (Pos(sUrlFilter,s)=1)
then begin

fs:=TFileStream.Create('e:\Programmierung\webview\ spostdata.txt',fmOpenReadWrite);
fs.Position:=0;
setLength(sPostData,fs.Size);
fs.Read(sPostData[1],fs.Size);
freeAndNil(fs);

Request.Header['Content-type'] := 'application/x-www-form-urlencoded';
Request.Method:='Post';
Request.Content:=TEncoding.UTF8.GetBytes(sPostData );
sUrlFilter:='';
end;
end;
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#4

AW: Post Data mit neuem TEdgeBrowser

  Alt 29. Sep 2020, 14:42
Bei mir funktioniert das wunderbar.

Eventuell ein Problem mit dem Typ?
Die Post-Data, die ich übergebe, sind einfach ein String mit Anmeldeinformationen für einen Webshop, der dann im Prinzip Teil der URL ist.
Dementsprechend Content-Typ "application/x-www-form-urlencoded". Vielleicht benötigen deine Daten einen anderen Typ, abhängig davon was genau du übergibst.
  Mit Zitat antworten Zitat
ReinerS

Registriert seit: 17. Sep 2020
5 Beiträge
 
#5

AW: Post Data mit neuem TEdgeBrowser

  Alt 30. Sep 2020, 15:05
Hallo,

habe einen Unterschied festgestellt

mit Edge version 85.0.564.63 werden die Daten verschickt
mit Edge 87.0.654.0 dev funktioniert dies nicht

muss dies mit Erik von Winsoft klären

jetzt muss ich nur noch herausfinden warum die Daten von der Gegenseite nicht richtig verarbeitet werden.
Die Daten müssten doch gleich sein wie beim IE mit IE.Navigate(AsURLLogin,EmptyParam,EmptyParam,sPost data, Headers);
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#6

AW: Post Data mit neuem TEdgeBrowser

  Alt 1. Dez 2020, 15:18
Zitat:
Hallo,

habe einen Unterschied festgestellt

mit Edge version 85.0.564.63 werden die Daten verschickt
mit Edge 87.0.654.0 dev funktioniert dies nicht

muss dies mit Erik von Winsoft klären
Genau das habe ich auch schon getan und habe die Antwort bekommen, dass demnächst eine neue Edge-Version und damit zusammenhängend dann auch eine neue WebView-Version rauskommt.
Diese ist vor 1-2 Wochen rausgekommen, hat das Problem aber leider nicht behoben.
Ich nehme mal stark an, dass das Problem immer noch in Edge drin steckt, oder hat sich bei dir irgendetwas getan?
  Mit Zitat antworten Zitat
ReinerS

Registriert seit: 17. Sep 2020
5 Beiträge
 
#7

AW: Post Data mit neuem TEdgeBrowser

  Alt 4. Dez 2020, 10:00
habe gerade mit einem Grosshändler telefoniert, aber Antwort: liegt an ihrer Komponente

Versuche seit 1 Monat mit einem Programmierer eines Grosshändlers in kontakt zu kommen, bekomme aber keinerlei Verbindung.

ganz kleine Vermutung: IE schickt den header als normalen string mit, Webview2 als Widestring.
Und da dann der "falsche" header ankommt werden diese Daten nicht ausgelesen

Aber nur kleine vermutung.

Sobald Ich Informationen habe, melde Ich mich.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz