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

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

點擊 完成 按鈕

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

二、修改代碼

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

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

添加后的代碼如下:

引用 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返回的結果.

(0)

相关推荐