AGB  ·  Datenschutz  ·  Impressum  







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

Webservice + SSL + D2010

Ein Thema von mcbain · begonnen am 8. Sep 2011 · letzter Beitrag vom 14. Sep 2011
 
mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#8

AW: Webservice + SSL + D2010

  Alt 14. Sep 2011, 09:26
So, ich habe nun eine Lösung für mein Problem gefunden.
Ich habe nun ganz auf die Indy-Komponenten verzichtet. Die einzige Komponente ist ein HTTPRio.

Hier der Code:

Code:
...
uses ... Rio, SOAPHTTPClient, WinInet , SOAPHttpTrans, EncdDecd, ...
...

procedure TForm2.rioHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; //Fügt den benötigten HTTP-Header hinzu für die Basic-Authentication
  Data: Pointer);
var
  S: String;
begin
  S := 'Authorization: Basic **************==';               //HTTP-Basic-Authorization-Header
  HttpAddRequestHeaders(Data, PChar(S), Length(S), HTTP_ADDREQ_FLAG_ADD);

end;


procedure TForm2.Button1Click(Sender: TObject);
var request, response: TStringStream;
    strings: TStringList;
    str: string;
    recieveID: integer;
begin
  rio.HTTPWebNode.URL := 'https://********************/webservice/***************Service';    //URL des Webservices
  rio.HTTPWebNode.SoapAction := 'http://**************/abrufen*************************';  //URL der aufzurufenden Methode
  rio.HTTPWebNode.Agent := 'Mozilla';
  rio.Port := '443';

  try

    strings := TStringList.Create;
    strings.LoadFromFile('request.xml');  //Hier ist der XML-request enthalten
 
    request := TStringStream.Create(strings.GetText);
    response := TStringStream.Create('');

    recieveID := rio.HTTPWebNode.Send(request);           //Request

    rio.HTTPWebNode.Receive(recieveID,response,false);    //Response
 
    response.Position := 0;
    mmo2.Lines.LoadFromStream(response, TEncoding.UTF8);

  finally
     strings.Free;
     request.Free;
     response.Free;
  end;

end;
Als kleine Anmerkung, in der Unit EncdDecd sind Funktionen für die Base64 Kodierung/Enkodierung enthalten. Damit kann man für HTTP Autorization Header den Usernamen und Passwort umwandeln.

Ich hoffe, ich konnte jemandem damit helfen.

Vielen Dank an Sebastian.

Geändert von mcbain (14. Sep 2011 um 09:37 Uhr)
  Mit Zitat antworten Zitat
 


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 02:04 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