AGB  ·  Datenschutz  ·  Impressum  







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

IdHTTP HTTPS Post

Ein Thema von ajmbarros · begonnen am 3. Nov 2010 · letzter Beitrag vom 3. Nov 2010
Antwort Antwort
ajmbarros
(Gast)

n/a Beiträge
 
#1

IdHTTP HTTPS Post

  Alt 3. Nov 2010, 07:52
Hallo!

Ich habe bereits nach Hier im Forum suchenIdHTTP HTTPS Post gesucht. Ich bin auch hier und da fündig geworden. Allerdings konnte ich mit keinem der Einträge wirklich erfolgreich sein.

Ich habe folgende situation:
Delphi 7
Indy 10

TidHTTP
TIdSSLIOHandlerSocketOpenSSL
ich möchte einen HTTPS-Post verschicken. Ich habe auch schon folgende dll.'s im Programmverzeichniss:
  • libeay32.dll
  • libssl32.dll
  • ssleay32.dll
  • zlib1.dll

Ich kann auch den Request absetzten. Allerdings scheint die Post-Data nicht so anzukommen wie ich sie abschicke. Ich habe ein TMemo dazu benutzt.
Hier er aufruf:

Delphi-Quellcode:
  IdSSLIOHandlerSocketOpenSSL.Open;

  if (Method.ItemIndex = 1)then
    response.Lines.Text := IdHTTP.Post(edurl.Text,request.lines)
  else
    response.Lines.Text := IdHTTP.Get(edurl.Text);
  htmlLite.LoadFromString(response.Lines.Text,'');
* response ist ein TRichEdit.

Ich schicke beispielsweise:

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
und bekomme aber:

Code:
<?xml version="1.0"%20encoding="iso-8859-1"?%3E

Ich habe das gefühl es stimmt was mit der verschlüsslung nicht. Aber was?
  Mit Zitat antworten Zitat
ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#2

AW: IdHTTP HTTPS Post

  Alt 3. Nov 2010, 11:17
Die Post Daten sind UrlEncoded. Versuch mal TIdURI.UrlDecode().
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#3

AW: IdHTTP HTTPS Post

  Alt 3. Nov 2010, 11:57
Es könnte an einem Fehlenden Header liegen.

Wenn der POST Request diese Zeile enthält:

Content-Type: application/x-www-form-urlencoded

Dann müsste der Server auch die URLEncode Daten korrekt dekodieren.

Ist jetzt nur geraten. Einfach mal im Indy IdHTTP Source nachschauen (oder einen HTTP Sniffer einsetzen) ...

Hope this helps,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
ajmbarros
(Gast)

n/a Beiträge
 
#4

AW: IdHTTP HTTPS Post

  Alt 3. Nov 2010, 13:16
ich glaube ich habe das Problem gefunden.

Es liegt daran das ich Strings genommen habe gebe. Aus irgendeinem Grund löst das folgene funktion in der Komponente aus:

Delphi-Quellcode:
procedure TIdCustomHTTP.EncodeRequestParams(AStrings: TStrings);
var
  i: Integer;
  LPos: integer;
  LStr: string;
begin
  Assert(AStrings<>nil);

  for i := 0 to AStrings.Count - 1 do begin
    //AStrings[i] := AStrings.Names[i] + AStrings.NameValueSeparator + TIdURI.ParamsEncode(AStrings.ValueFromIndex[i]);
    LStr := AStrings[i];
    LPos := IndyPos('=', LStr);
    if LPos > 0 then begin
      AStrings[i] := Copy(LStr, 1, LPos-1) + '=' + TIdURI.ParamsEncode(Copy(LStr, LPos+1, MAXINT));
    end;
  end;
end;
..und zerstört damit mein Post.

Nimmt mann ein Stream (die Post funktion ist überladen) geht es:

request.lines.SaveToStream(poststream);
result.lines := IdHTTP.Post(api_url,poststream);


Danke trotzdem für deinen Tipp...
  Mit Zitat antworten Zitat
ajmbarros
(Gast)

n/a Beiträge
 
#5

AW: IdHTTP HTTPS Post

  Alt 3. Nov 2010, 13:18
Frage geschlossen...
  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 13:02 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