AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke THTTPClient unter Windows geht nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

THTTPClient unter Windows geht nicht richtig

Ein Thema von Peter666 · begonnen am 25. Jan 2021 · letzter Beitrag vom 26. Jan 2021
Antwort Antwort
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 16:11
Hi, ich habe folgendes Problem:

Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
var
  http: THttpClient;
  stream: TMemoryStream;
begin

  stream := TMemoryStream.Create;
  http := THttpClient.Create;
  http.HandleRedirects := true;
  try
    try
      http.Get('https://cdn.wallpapersafari.com/81/79/vl5G7p.jpg', stream);
      stream.Position := 0;
    except
    end;
  finally
    http.DisPoseOf;
  end;
  Image1.Bitmap.LoadFromStream(stream);
  stream.free;
end;
Der oben stehende Code sollte ein Bild in eine Bitmap laden. Irgendwie verweigert aber die Klasse unter Windows bei dem Code die Arbeit. Unter OSX, Android und iOS geht das aber problemlos. Ich mag aber nicht auf Indy umstellen, sondern lieber den Nativen Code von Embarcadero nutzen. Soweit ich mich erinnere ging das aber unter 10.3 ohne Murren und Knurren.

Peter
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 16:29
Magst du noch angeben was für dich "Arbeit verweigern" heißt? Wenn du die Exception nicht einfach schluckst und/oder im Debugger schaust, dann wüssten wir auch was denn genau nicht läuft wie es sollte...
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#3

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 16:45
Ja klar, es kommt zu einem 12002 als Fehlermeldung nachdem der Timeout erreicht ist.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 17:08
Der nachfolgende Code lädt bei mir unter 10.0 Seattle und 10.4.0 Sydney problemlos die 139 KB große Sonnenblumenwiese herunter, unter Windows 32 und 64 Bit.
Irgendwelche spannenden Proxies auf deinem System? Und welche Delphi-Version genau?

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
   System.SysUtils,
   System.Classes,
   System.Net.HttpClient;

procedure p();
const
   url = 'https://cdn.wallpapersafari.com/81/79/vl5G7p.jpg';
   filePath = 'c:\users\localUser\Desktop\picture.jpg';
var
   http: THttpClient;
   stream: TMemoryStream;
begin
   stream := TMemoryStream.Create();
   try
      http := THTTPClient.Create();
      try
         http.HandleRedirects := True;
         http.Get(url, stream);
         stream.Seek(0, TSeekOrigin.soBeginning);
         stream.SaveToFile(filePath);
      finally
         http.Destroy();
      end;
   finally
      stream.Destroy();
   end;

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
236 Beiträge
 
Delphi 12 Athens
 
#5

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 17:43
Wie ist das mit dem "https"
Wir haben dazu einfach eine Indy TIdHttp mit passender TIdServerIOHandlerSSLOpenSSL Komponente genommen.

Alternativ: Direkt mit Windows Funktion Download

URLDownloadToFile(nil,PChar(MeineURLzumDownload),P Char(DerLokaleDateiname),0,nil)
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 20:07
Image1.Bitmap.LoadFromStream(stream); Dort dürfte eher das Problem liegen.
Um welches Betriebssystem geht es denn? Die meisten, die das hier testen, verwenden vermutlich Windows 10, so auch ich. Dort ist das Laden mit den in Windows integrierten Codecs auch kein Problem. Bei älteren Betriebssystemen muss das nicht unbedingt funktionieren.

Was passiert denn, wenn du dir das im Debugger schrittweise anschaust?
Ist Stream.Size z.B. nach dem Laden korrekt?
Gibt es eine Exception?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 20:15
Ja klar, es kommt zu einem 12002 als Fehlermeldung nachdem der Timeout erreicht ist.
Aber das hat er sich doch wahrscheinlich nicht ausgedacht, oder?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: THTTPClient unter Windows geht nicht richtig

  Alt 25. Jan 2021, 20:19
Stimmt, das hatte ich wieder vergessen nachdem ich es getestet hatte.

Hier geht es jedenfalls auch mit dem Originalcode 1:1.

// EDIT:
Hilft vielleicht der Process Monitor weiter? Bei mir sieht man dort das:
2021-01-25.png
Gibt es dort auch ein TCP Receive?
Sebastian Jänicke
AppCentral

Geändert von jaenicke (25. Jan 2021 um 20:23 Uhr)
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#9

AW: THTTPClient unter Windows geht nicht richtig

  Alt 26. Jan 2021, 13:53
Vielen Dank für die Antwort. Das Problem lag wohl an meiner Firewall, bzw. der von Windows. Ich hab diese testweise ausgestellt und danach ging das ganze. Was mich wundert ist, dass ich den selben Code zum Lesen von XML und JSONs von einem Server verwende und das ging komischerweise. Bilder hat er aber geblockt.

Peter
  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 04:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz