AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows API: HTTP D11 vs. D10

Ein Thema von looseleaf · begonnen am 18. Jul 2023 · letzter Beitrag vom 20. Jul 2023
Antwort Antwort
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#1

AW: Windows API: HTTP D11 vs. D10

  Alt 19. Jul 2023, 11:33
ShowMessage(SizeOf(accept).ToString); sollte eigentlich das Gleiche liefern, egal ob var accept: array[0..1] of PAnsiChar; oder var accept: packed array[0..1] of PAnsiChar; .


accept[0] := '*/*';
Echte Konstanten (untypisierte Konstante) lassen sich auch direkt an PChar/PAnsiChar/PWideChar übergeben.

z.B. macht es keinen Unterschied, ob ShellExecute(0, 'OPEN', ... oder ShellExecute(0, PChar('OPEN'), ... .

Ja, tut es auch, immer 8. Ich verstehe absolut nicht, was hier das ursächliche Problem ist.

Danke jedenfalls für euer Feedback!

Stefan
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: Windows API: HTTP D11 vs. D10

  Alt 19. Jul 2023, 17:21
HTTP/400 Bad Request heißt einfach nur, dass das, was der Client an den Server schickt, vom Server nicht korrekt verarbeitet werden kann. "Irgendwas dadrin ist faul". Dies bezieht sich nicht nur auf die Url, sondern auf den gesamten Inhalt der Anfrage.
Zitat:
Ich glaub, ich weiß, wo es hakt. Der Accept-HEader liefert nicht nur */*, sondern danach noch eingies an Datenmüll.
Irgendwas davon irritiert den Server, deshalb seine Fehlermeldung.

Beim Aufbau des Headers muss irgendwas schieflaufen. Ein paar mögliche Ursachen wurden schon genannt. Und da das "Schieflaufen" sich bei jedem Programmstart irgendwie anders auswirkt, hast Du das Problem: Mal geht's, mal nicht, also das typische: Fehler ist nicht reproduzierbar, aber tritt regelmäßig auf.

Mögliche Ursache: Nicht sauber terminierte PChars, so dass da dann noch Teile dessen enthalten sind, was da gerade so zufällig im Arbeitsspeicher hinter dem PChar "rumliegt".

Wenn Du mal 'nen Header hier posten könntest und den vollständigen Quelltext zum Aufbau der Anfrage, wäre es eventuell möglich zu schauen, wo es da "klemmt".
  Mit Zitat antworten Zitat
looseleaf

Registriert seit: 25. Mai 2011
69 Beiträge
 
#3

AW: Windows API: HTTP D11 vs. D10

  Alt 20. Jul 2023, 07:10
HTTP/400 Bad Request heißt einfach nur, dass das, was der Client an den Server schickt, vom Server nicht korrekt verarbeitet werden kann. "Irgendwas dadrin ist faul". Dies bezieht sich nicht nur auf die Url, sondern auf den gesamten Inhalt der Anfrage.
Zitat:
Ich glaub, ich weiß, wo es hakt. Der Accept-HEader liefert nicht nur */*, sondern danach noch eingies an Datenmüll.
Irgendwas davon irritiert den Server, deshalb seine Fehlermeldung.

Beim Aufbau des Headers muss irgendwas schieflaufen. Ein paar mögliche Ursachen wurden schon genannt. Und da das "Schieflaufen" sich bei jedem Programmstart irgendwie anders auswirkt, hast Du das Problem: Mal geht's, mal nicht, also das typische: Fehler ist nicht reproduzierbar, aber tritt regelmäßig auf.

Mögliche Ursache: Nicht sauber terminierte PChars, so dass da dann noch Teile dessen enthalten sind, was da gerade so zufällig im Arbeitsspeicher hinter dem PChar "rumliegt".

Wenn Du mal 'nen Header hier posten könntest und den vollständigen Quelltext zum Aufbau der Anfrage, wäre es eventuell möglich zu schauen, wo es da "klemmt".
Der Code steht 1:1 oben, es sind nur die Deklaration, die Zuweisung und das Benutzen. An amderen Stellen wird "accept" nicht verwendet.
Den Header habe ich nicht mehr, hab den Debugcode schon rausgenommen, aber es war immer derselbe Datenmüll.

Wir verwenden es jetzt mit einem packed array und sind zufrieden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:29 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