Call C # written WebService with Delphi's Thttprio control
Here are some of the problems I encountered while debugging:
1. Import the WSDL file: file--new----Other----wenservice---wsdlimporter---Enter the WSDL address: The following: http://10.0.1.128:7777/ shinemediapublish/webservice/webservicecall.asmx?wsdl
Note the end of: '? WSDL ' cannot be less. Or you might say you can't find it.
2, set the properties of the Thttprio control:
Began assigning http://10.0.1.128:7777/ShineMediaPublish/WebService/WebServiceCall.asmx?wsdl to the Wsdllocation attribute. Always error when connecting.
Later assigned to the URL attribute, will not error.
3, the pass-through parameter is always null for the Web service side:
Add the following code in the Declarations section of the imported interface unit:
Invregistry.registerinvokeoptions (TypeInfo (webservicecallsoap), iodocument);//The red part is the import interface name.
Here is a simple code for the client:
Unit Unit1;
Interface
Uses
Windows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms,
Dialogs, Invokeregistry, Stdctrls, Rio, Soaphttpclient,webservicecall;
Type
TForm1 = Class (Tform)
Htpr1:thttprio;
Edt1:tedit;
Btn1:tbutton;
Procedure Btn1click (Sender:tobject);
Private
{Private declarations}
Public
{Public declarations}
End
Var
Form1:tform1;
Implementation
{$R *.DFM}
Procedure Tform1.btn1click (Sender:tobject);
Var
s:widestring;
Begin
S:= ' scoring score ';
Edt1. Text:= (Htpr1 as Webservicecallsoap). operaterlogin (' 1 ', ' DD ', s);//operaterlogin is an interface method.
End
End.
Use the Delphi Thttprio control to invoke the WebService written by C #.