HTTPRIO componenti ile giden gelen XML’lerin bulunması

Delphi’de THTTPRio componentini kullanarak webservis uygulaması geliştirirken giden ve gelen xml metinlerine ihtiyaç duyulabilir. Formumuzda HttpRio1 isimli componentimizin olduğunuz kabul ederek Giden için BeforeExecute metoduna ve Gelen için AfterExecute metoduna aşağıdaki ifadeler yazılır:


uses OPConvert;
// Giden
procedure TForm1.HTTPRIO1BeforeExecute(
const MethodName: String; var SOAPRequest: WideString);
begin
   ShowMessage(SOAPRequest);
end;
// Gelen
procedure TForm1.HTTPRIO1AfterExecute(
const MethodName: String; SOAPResponse: TStream);
var
   Str: string;
   sl : TStringList;
begin
   sl := TStringList.Create;
   SOAPResponse.Seek(0,soFromBeginning);
   sl.LoadFromStream(SOAPResponse);
   if (soUTF8EncodeXML in HTTPRIO1.Converter.Options) then
      Str:=UTF8Decode(sl.Text)
   else
     Str:=sl.Text;

   FreeAndNil(sl);
   ShowMessage(Str);
end;

Delphi ile web servis’e parametre gönderim problemi

ASP.NET (VS 2005) ile oluşturulmuş bir web servisine parametre gönderemedim. Parametresiz olarak çağırıldığında problem yok, parametre ile çağrıldığında, parametre değeri olarak null gidiyor ve “Value cannot be null” hatası alınıyor. 

Delphi ile oluşturulan kod içerisine

initialization

InvRegistry.RegisterInterface(TypeInfo(SoapAdi), 'http://tempuri.org/', 'utf-8');

altına:

InvRegistry.RegisterInvokeOptions(TypeInfo(SoapAdi), ioDocument);

satırını ekleyince problem çözüldü.