AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Webservice

Ein Thema von InschenierSB · begonnen am 25. Apr 2018 · letzter Beitrag vom 17. Mai 2018
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Webservice

  Alt 7. Mai 2018, 13:10
Ich möchte dir die offizielle Dokumentation ans Herz legen, auch für weitere allgemeinere Fragen zu Delphi und seinen Sprachkonstrukten:
http://docwiki.embarcadero.com/RADSt...finally_Blocks
http://docwiki.embarcadero.com/RADSt...lly_Statements
  Mit Zitat antworten Zitat
InschenierSB

Registriert seit: 25. Apr 2018
Ort: Regensburg
39 Beiträge
 
#2

AW: Webservice

  Alt 7. Mai 2018, 14:51
Kann jemand mit folgender FM (siehe Screen-Shot Anhang) was anfangen?

Delphi-Quellcode:
 Result: String;
 Test:TIdHeaderInfo;

 //IdLogDebug: TIdLogDebug;
 procedure TForm1.Button1Click(Sender: TObject);
begin




  IdHTTP1:=TIdHTTP.Create(nil);
  HTTP_Stream:= TStringStream.Create('');
  Body:=TStringlist.Create;
  Body.Add('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cim="http://cim.osram.ws.gefasoft.com/" xmlns:dat="http://cim.osram.ws.gefasoft.com/DataContracts">');
  Body.Add('<soapenv:Header/>');
  Body.Add('<soapenv:Body>');
  Body.Add('<cim:GetLotInfoByLotName>');
  Body.Add('<cim:requestMessage>');
  Body.Add('<dat:ToolCode>?</dat:ToolCode>');
  Body.Add(' <dat:CheckSlotPos>false</dat:CheckSlotPos>');
  Body.Add('<dat:EquipmentValidation>false</dat:EquipmentValidation>');
  Body.Add('<dat:LotName>R173419P</dat:LotName>');
  Body.Add('<dat:ReturnBrokenWafers>true</dat:ReturnBrokenWafers>');
  Body.Add('<dat:UseSlotPosition>false</dat:UseSlotPosition>');
  Body.Add('</cim:requestMessage>');
  Body.Add('</cim:GetLotInfoByLotName>');
  Body.Add('</soapenv:Body>');
  Body.Add('</soapenv:Envelope>');


  Url:= 'http://tst-rbg14:8019/Lot.svc';

    IdHTTP1.Post('http://tst-rbg14:8019/Lot.svc',Body,HTTP_Stream);
   IdHTTP1.ProtocolVersion:=pv1_1;
   try
 // IdHTTP1.ProtocolVersion:='1.1';
  IdHTTP1.Request.AcceptEncoding:= 'gzip,deflate';
  IdHTTP1.Request.ContentType:='text/xml';
  IdHTTP1.Request.ContentEncoding:='UTF-8';
  IdHTTP1.Request.ExtraHeaders.Add('http://cim.osram.ws.gefasoft.com/ILot/GetLotInfoByLotName');
  IdHTTP1.Request.ContentLength:= 918;
  IdHTTP1.Host:= 'tst-rbg14:8019';
  IdHTTP1.Request.Connection:='Keep-Alive';
  IdHTTP1.Request.UserAgent:= 'Apache-HttpClient/4.1.1 (java 1.5)';
  IdHTTP1.Port:=8019;
 // Body.SaveToStream(Stream);
 // Response:= IdHTTP1.Post('http://thomas-bayer.com/axis2/services/BLZService',Body,Stream);
// IdHHTP1.Request.
    HTTP_Stream.Position:=0;




 //IdHTTP1.Get(URL_,Stream);
// showMessage(IdHTTP1.Request.);
// Stream.LoadFromStream();
 memo1.Lines.Add(IdHTTP1.Response.Server);
   // Memo2.Lines.Add(Format('Response Code: %d', [IdHTTP1.ResponseCode]));
   //Memo2.Lines.Add(Format('Response Text: %s', [IdHTTP1.ResponseText]));
    Body.LoadFromStream(HTTP_Stream);
   Memo2.Lines.AddStrings(Body);
    finally

   HTTP_Stream.Free;
   end;


end;




end.
Angehängte Grafiken
Dateityp: png Fault_Message.PNG (48,4 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Webservice

  Alt 7. Mai 2018, 15:23
Kann jemand mit folgender FM (siehe Screen-Shot Anhang) was anfangen?
  IdHTTP1.Request.ContentType:='text/xml';
So sollte die Fehlermeldung verschwinden, ob es zu dem Rest von Dir passt weiß ich nicht.
IdHTTP1.Request.ContentType:='application/octet-stream';
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
InschenierSB

Registriert seit: 25. Apr 2018
Ort: Regensburg
39 Beiträge
 
#4

AW: Webservice

  Alt 7. Mai 2018, 15:43
Kann jemand mit folgender FM (siehe Screen-Shot Anhang) was anfangen?
  IdHTTP1.Request.ContentType:='text/xml';
So sollte die Fehlermeldung verschwinden, ob es zu dem Rest von Dir passt weiß ich nicht.
IdHTTP1.Request.ContentType:='application/octet-stream';
Leider bleibt alles so wie es ist, selbst wenn ich es auskommentiere.... die Meldung ändert sich nicht
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Webservice

  Alt 7. Mai 2018, 16:57
application/octet-stream bedeuted das Du mit binär Daten arbeiten musst.
Ich vermute Dein Code basiert auf Text Inhalt, da sollest Du alles auf Binär umstellen damit ein Fernzugriff klappt.
Also nicht nur das Transport Protocol "application/octet-stream" setzen, alles was damit zu tun hat muss entsprechend angepasst werden.
Vor ein paar Tagen hab ich verschiedene Download Varianten mit GET() durchgekaut, schau da mal in den Thread rein, vielleicht kannst Du meinen Code ohne große Probleme nach Indy portieren, die Befehle sind fast identisch. (THttpClient)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
mjustin

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

AW: Webservice

  Alt 7. Mai 2018, 17:06
application/octet-stream bedeuted das Du mit binär Daten arbeiten musst.
Ich vermute Dein Code basiert auf Text Inhalt, da sollest Du alles auf Binär umstellen damit ein Fernzugriff klappt.
Also nicht nur das Transport Protocol "application/octet-stream" setzen, alles was damit zu tun hat muss entsprechend angepasst werden.
Vor ein paar Tagen hab ich verschiedene Download Varianten mit GET() durchgekaut, schau da mal in den Thread rein, vielleicht kannst Du meinen Code ohne große Probleme nach Indy portieren, die Befehle sind fast identisch. (THttpClient)
Die Fehlermeldung im Screenshot sagt, das erwartete Encoding ist "text/xml". Gesendet hat der Client laut Fehlermeldung stattdessen "application/octet-stream".

Vielleicht hilft Wireshark oder ein HTTP Proxy wie Fiddler2 bei der Aufklärung wie die gesendeten Requests aussehen.

p.s. Host, Port, ContentLength anzugeben ist nicht sinnvoll, da diese Werte von TIdHTTP ermittelt werden.
Michael Justin
habarisoft.com

Geändert von mjustin ( 7. Mai 2018 um 17:08 Uhr)
  Mit Zitat antworten Zitat
InschenierSB

Registriert seit: 25. Apr 2018
Ort: Regensburg
39 Beiträge
 
#7

AW: Webservice

  Alt 8. Mai 2018, 06:26
application/octet-stream bedeuted das Du mit binär Daten arbeiten musst.
Ich vermute Dein Code basiert auf Text Inhalt, da sollest Du alles auf Binär umstellen damit ein Fernzugriff klappt.
Also nicht nur das Transport Protocol "application/octet-stream" setzen, alles was damit zu tun hat muss entsprechend angepasst werden.
Vor ein paar Tagen hab ich verschiedene Download Varianten mit GET() durchgekaut, schau da mal in den Thread rein, vielleicht kannst Du meinen Code ohne große Probleme nach Indy portieren, die Befehle sind fast identisch. (THttpClient)
Die Fehlermeldung im Screenshot sagt, das erwartete Encoding ist "text/xml". Gesendet hat der Client laut Fehlermeldung stattdessen "application/octet-stream".

Vielleicht hilft Wireshark oder ein HTTP Proxy wie Fiddler2 bei der Aufklärung wie die gesendeten Requests aussehen.

p.s. Host, Port, ContentLength anzugeben ist nicht sinnvoll, da diese Werte von TIdHTTP ermittelt werden.
Guten Morgen,
ja mit dem Wireshark da bin ich aktuell schon dran, finde nur aktuell den Request nicht, es sind glaube ich zu viele Dienste aktiv. Mal schauen....
  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 18:22 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