AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

CGI-Einzelanwendung

Ein Thema von BerTa · begonnen am 9. Mai 2016 · letzter Beitrag vom 1. Jun 2016
Antwort Antwort
Seite 1 von 2  1 2   
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
54 Beiträge
 
Delphi 7 Enterprise
 
#1

CGI-Einzelanwendung

  Alt 9. Mai 2016, 15:36
Hi,
ich habe das Problem, dass ich einen WebService programmieren muss, aber nicht genau weiß, was ich zu beachten habe und wo ich anfangen soll.

Ziel ist es für einen externen Web-Entwickler einen WebService bereitzustellen, der seine Soap-Anfragen beantwortet.

ich habe zum ersten Test folgendes Tutorial gefunden und einmal durchgearbeitet:

http://www.delphi-treff.de/tutorials...webservices/1/

Ich scheitere nun aber am Aufruf, d.h. mir wird die Seite mit den Service-Infos nicht angezeigt.
Wie binde ich denn mein Exe-File ein?
Hat da eventuell jemand Erfahrungen mit?

Ich verwende Delphi 7.
Als WevServer wurde ein Windows 2012 R2 verwendet (ISS).

Vielen Dank schonmal im voraus.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
Ort: Oberreichenbach
16.170 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: CGI-Einzelanwendung

  Alt 9. Mai 2016, 17:01
Muss es denn SOAP sein? Reicht nicht auch JSON?
SOAP und D7 sind glaube ich nicht die "besten Freunde". AFAIK ist die Standard-Kompatiblität mit solchen alten Delphi-Versionen nicht sehr hoch.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

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

AW: CGI-Einzelanwendung

  Alt 9. Mai 2016, 17:35
Für Free Pascal und Delphi gibt es ein Web Service Toolkit, mit dem auch SOAP Server erzeugt werden können:

http://wiki.lazarus.freepascal.org/Web_Service_Toolkit
Zitat:
"Web Service Toolkit” is a web services package for FPC, Lazarus and Delphi; “Web Service Toolkit” is meant to ease web services consumption and creation by FPC, Lazarus and Delphi users.
Eigene Erfahrungen habe ich noch nicht damit gemacht, aber es könnte eine brauchbare Alternative sein.

Ausserdem noch zu beachten für Delphi 7 (und andere Versionen) gibt es ein WSDL Importer Update:

http://cc.embarcadero.com/item/24535
Michael Justin
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
54 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: CGI-Einzelanwendung

  Alt 12. Mai 2016, 14:50
Hi,
ich habe mir nocheinmal ein weiteres Tutorial (ISAPI) angeschaut und auch einen WebService am Laufen:

http://chapmanworld.com/2015/03/30/c...ces-in-delphi/

Wie muss ich denn vorgehen um als Request und Response eine XML-Datei zu verwenden in meinen bereitgestellten Funktionen?

Schöne Grüße
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
54 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: CGI-Einzelanwendung

  Alt 25. Mai 2016, 15:01
Hi,
ich bins nochmal. Bin noch nicht wirklich vorangekommen.
Funktionen bei denen Integer, String oder Double Werte übergeben werden sind kein Problem.
Ich finde zur Zeit noch keine Lösung was ich beim Server alles beachten muss, um in den Funktionen als Übergabe eine XML-Datei zu verwanden.
Den Text der XML-Datei in einen String zu packen ist vermutlich nicht die Lösung.

Hat irgendwer hier Erfahrungswerte?
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
3.836 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: CGI-Einzelanwendung

  Alt 25. Mai 2016, 15:39
Den Text der XML-Datei in einen String zu packen ist vermutlich nicht die Lösung.
Soap ist doch schon XML... Was willst Du den senden und warum XML?

SOAP zeichnet sich im Gegensatz zu JSON dadurch aus, dass Du nach eine Import der Schnittstelle Remoteable Delphi Objekte hast.

Dieses Object mit seinen properties wird per XML-SOAP übertragen...

Oder

Willst Du Datensatz als XML Datei senden?

Dann entweder aus den Datensätze eine Classe machen und ganz normal per SOAP "versenden", oder wenn Du die XML Datei nicht interpretieren willst diese ggf. packen und als TByteDynArray senden.

Fertig... Ist nen 3 Zeiler
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
1.528 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: CGI-Einzelanwendung

  Alt 25. Mai 2016, 18:45
Schonmal das probiert ?

Ich würde REST mit JSON einem XML Server vorziehen, weil schlankeres Protokoll.
Oder muss es unbedingt SOAP sein ?

Rollo
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
54 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: CGI-Einzelanwendung

  Alt 26. Mai 2016, 10:25
Hi,
es sollte schon Soap sein, da der Webentwickler uns diese Vorgabe gemacht hat.

Code:
    function GetMWSt(const Brutto: Double): Double; stdcall;
Ich stehe grad ein wenig auf dem Schlauch. Solch eine Funktion ist ja kein Thema, nur ich will ansteller
der Übergabe Brutto ouble eine XML Datei haben, welche ich in der Funktion verarbeite und eine XML-Datei als Antwort wieder zurück sende.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
3.836 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: CGI-Einzelanwendung

  Alt 27. Mai 2016, 02:30
Übergabe Brutto ouble eine XML Datei haben, welche ich in der Funktion verarbeite und eine XML-Datei als Antwort wieder zurück sende.
LESEN macht schlau...

oder wenn Du die XML Datei nicht interpretieren willst diese ggf. packen und als TByteDynArray senden.

Fertig... Ist nen 3 Zeiler
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
54 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: CGI-Einzelanwendung

  Alt 27. Mai 2016, 07:06
Hi,
Ich habe mich jetzt mal daran versuch es über ein ByteDynArray zu lösen.
Auf dem Server habe ich mit nun ein XML-Dokument erzeugt welches ich zurück geben will.

Server:
Code:
UebXml := TXMLDocument.Create(nil);
UebXml.Active := True;
UebXml.Version := '1.0';
UebXml.Encoding := 'UTF-8';
UebXml.Options := UebXml.Options + [doNodeAutoIndent];
UebXml.DocumentElement := UebXML.CreateNode('APsolutXML', ntElement, '');
UebXml.DocumentElement.AddChild('response').AddChild('status').NodeValue := 0;
UebXml.DocumentElement.ChildNodes.Nodes['response'].AddChild('status_text').NodeValue := 'Status Test';

lResponse := TMemoryStream.Create;
UebXml.SaveToStream(lResponse);

setlength(bytedynarray,lResponse.size);
lResponse.position:=0;
lResponse.read(bytedynarray[0],lResponse.size);

result := bytedynarray;
Am Client verarbeite ich nun die Daten bekommen aber einen Fehler, wenn ich das XML-Dokument aus dem Stream lade. Speichere ich erst eine Datei ab und lade das Dokument dann aus der Datei, scheint es zu laufen.

Client:
Code:
ByteDynArray2 := Service.PruefUser(ByteDynArray);
ByteArrayToFIle(ByteDynArray2,'Client_Response.xml');
lResponse.Write(ByteDynArray[0],SizeOf(ByteDynArray));
lResponse.Position := 0;

UebXml.LoadFromFile('Client_Response2.xml');
UebXml.LoadFromStream(lResponse);
Da der Server und der Client die XML-Dokumente auch weiter verarbeiten sollen, ist es notwendig das XML-Dokument auch wieder einzulesen. Der Umweg über eine Datei ist nicht so schön.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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