AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

Ein Thema von luisk · begonnen am 27. Mai 2016 · letzter Beitrag vom 30. Mai 2016
Antwort Antwort
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#1

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 28. Mai 2016, 08:33
Die Indy TIdHTTP Komponente kann auch von Haus aus GZIP dekomprimieren, dazu muss einfach eiine TIdCompressorZLib Komponente erzeugt und der TIdHTTP.Compressor Property zugewiesen werden. Fundstelle: http://stackoverflow.com/a/8597492/80901
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#2

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 28. Mai 2016, 21:57
Die Indy TIdHTTP Komponente kann auch von Haus aus GZIP dekomprimieren, dazu muss einfach eiine TIdCompressorZLib Komponente erzeugt und der TIdHTTP.Compressor Property zugewiesen werden. Fundstelle: http://stackoverflow.com/a/8597492/80901
Das hab ich probiert - Funktioniert aber nicht !

Diese Variante bleibt auch hängen :
Quelle:
https://www.experts-exchange.com/que...P-content.html
Delphi-Quellcode:
 idhttp1.Intercept:= self.IdCompressionIntercept1;
           ls := idhttp1.Put( l_url , nil );
hier kommt die Meldung "Dekomprimierungsfehler":
Delphi-Quellcode:
idhttp1.Intercept:= self.IdCompressionIntercept1;
       idhttp1.Get( l_url , l_in_Stream );
Vielleicht klappt es bei Dir und Du kannst mir nen Tip geben.

Geändert von luisk (28. Mai 2016 um 22:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#3

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 28. Mai 2016, 22:02
Das hab ich probiert - Funktioniert aber nicht !
Wenn du das machst musst du das zippen auf der Serverseite weglassen. Gzip funktioniert dann völlig transparent. Um das zu überprüfen kannst du beispielsweise Wireshark benutzen und dir den Traffic anschauen. Dieser sollte dann Gzip sein.

das mit dem Zippen funktioniert doch auf der Serverseite
Das Problem liegt doch bei IdHTTP1: TIdHTTP; in meiner Delphi-FMX-Anwendung
Deswegen ja mein Vorschlag. Wenn das nicht funktioniert, bau die encode-Zeile aus dem Server aus und die decode Zeile aus dem Client. Sag deinem Webserver er soll Gzip machen (wahrscheinlich tut er das schon) und gib deinem HTTP-Client wie mjustin beschrieben hat die Decompressor Property.

Anschließend ist die Kompression völlig transparent und ohne eine einzige Zeile Code. Klingt das nicht erstrebenswert?

Und um das zu überprüfen (weils ja transparent ist) kann man sich noch Wireshark oder ähnliche Tools zu Hilfe nehmen.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#4

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 28. Mai 2016, 22:23
https://varvy.com/pagespeed/enable-compression.html
The code below should be added to your .htaccess file...
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
Das hab ich jetzt mal ausgeführt. Mal sehen, was passiert.
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#5

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 09:54
@Valle
Danke erstmal für die Tips.
Ich teste mit einem xampp Apache server Version 2.4.10
Ich habe jetzt mal eine .htaccess Datei mit obigem im htdocs-Verzeichnis angelegt.
Wireshark scheint Probleme mit meiner Firwall zu haben.

Daher habe ich jetzt mal folgenden Test über curl.exe gemacht:

C:\Programme\curl>curl -I -H 'Accept-Encoding: gzip,deflate' http ://localhost
curl: (6) Could not resolve host: gzip,deflate'
HTTP/1.1 302 Found
Date: Sun, 29 May 2016 08:39:20 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
X-Powered-By: PHP/5.6.3
Location: http://localhost/xampp/
Content-Type: text/html; charset=UTF-8

'Could not resolve host: gzip,deflate' bedeutet ja, dass die Komprimierung nicht aktiv ist.
Was muss ich noch berücksichtigen ?

Geändert von luisk (29. Mai 2016 um 09:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 09:57
Ich würde eher sagen, dass er den Host nicht gefunden hat, bzw. dessen IP Adresse nicht auflösen konnte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#7

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 10:02
Ich würde eher sagen, dass er den Host nicht gefunden hat, bzw. dessen IP Adresse nicht auflösen konnte.
Den Webserver hat curl doch gefunden
HTTP/1.1 302 Found
Date: Sun, 29 May 2016 08:39:20 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
X-Powered-By: PHP/5.6.3
Location: http://localhost/xampp/
Content-Type: text/html; charset=UTF-8

nur nicht die Dekomprimierung
Die Frage ist, ob es reicht, wenn ich diese .htaccess-Datei in /htdocs speichere.

Geändert von luisk (29. Mai 2016 um 10:07 Uhr)
  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 21:56 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