Delphi 7 调用 C# WebService

我有一支老舊的 Delphi 7 程序具有發送 SMTP 的功能, 功能整合, 需要調用 C# WebService 發送郵件功能,

發現 Delphi 7并不能像 C# 一樣, 添加了 WebService 后就可以直接使用, 而在 Delphi XE 2或5中卻很方便.

可是 Delphi XE 的破解補丁用一段時間失效了, 需要重新安裝系統才能破解.

 

無奈之下, 只好使用 Delphi 7 . 上網查了一些資料, Delphi 7 調用 WebService 需要多寫幾行代碼.

 

一、添加 WebService

點擊菜單 File --> New  --> Other

選擇 WebServices 的 WSDL Importer, 點擊 OK

Delphi 7 调用 C# WebService_第1张图片

 

輸入 WebService 的地址, 后面加 ?wsdl

Delphi 7 调用 C# WebService_第2张图片

 

點擊 完成 按鈕

Delphi 7 调用 C# WebService_第3张图片

 

到此,WebService 添加完成, 專案會自動增加 service1.pas

 

二、修改代碼

在 service1.pas 的最下面, 添加以下一行, 其中 Service1Soap 根據實際名稱不同而不同

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

 

添加后的代碼如下:

Delphi 7 调用 C# WebService_第4张图片

 

引用 WebService 需要的組件, 申明變量, 初始化后就可以直接調用了,

完整代碼如下:

 

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns,
  service1 in 'service1.pas';

var
  WebService1: Service1Soap;
  mHttpRIO: THTTPRIO;
  webservice_result: string;

begin
  { TODO -oUser -cConsole Main : Insert code here }

  mHttpRIO := THTTPRIO.Create(nil);


  mhttprio.URL := 'http://192.168.1.108:6666/service1.asmx';

  mhttprio.HTTPWebNode.UseUTF8InHeader := true;

  mhttprio.Converter.Encoding := 'UTF-8';

 

  Webservice1 := mhttprio as Service1Soap;

  //調用
  webservice_result := webservice1.SendMail('根據實際需要填寫參數');

 

end.

 

調試運行, webservice_result 就是調用webservice返回的結果.

 

你可能感兴趣的:(Delphi7,webservice,開發)