// ************************************************************************ // // The types declared in this file were generated from data read from the // WSDL File described below: // WSDL : http://service.tel99.cn/YtFaxWebService.asmx?WSDL // Encoding : utf-8 // Version : 1.0 // (2010/9/17 上午 11:38:10 - 1.33.2.5) // ************************************************************************ //unit YtFaxWebService;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type // ************************************************************************ // // The following types, referred to in the WSDL document are not being represented // in this file. They are either aliases[@] of other types represented or were referred // to but never[!] declared in the document. The types from the latter category // typically map to predefined/known XML or Borland types; however, they could also // indicate incorrect WSDL documents that failed to declare or import a schema type. // ************************************************************************ // // !:string - "http://www.w3.org/2001/XMLSchema" // ************************************************************************ // // Namespace : http://soap.model.service.YuanTel.com // soapAction: http://soap.model.service.YuanTel.com/FaxDoAction // transport : http://schemas.xmlsoap.org/soap/http // binding : YtFaxWebServiceSoap // service : YtFaxWebService // port : YtFaxWebServiceSoap // URL : http://service.tel99.cn/YtFaxWebService.asmx // ************************************************************************ // YtFaxWebServiceSoap = interface(IInvokable) ['{67D18A09-D65C-6CDE-BBD4-DF9A35E18511}'] function YtDoAction(const _xml: WideString): WideString; stdcall; end;function GetYtFaxWebServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): YtFaxWebServiceSoap; implementationfunction GetYtFaxWebServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): YtFaxWebServiceSoap; const defWSDL = 'http://service.tel99.cn/YtFaxWebService.asmx?WSDL'; defURL = 'http://service.tel99.cn/YtFaxWebService.asmx'; defSvc = 'YtFaxWebService'; defPrt = 'YtFaxWebServiceSoap'; var RIO: THTTPRIO; begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as YtFaxWebServiceSoap); if UseWSDL then begin RIO.WSDLLocation := Addr; RIO.Service := defSvc; RIO.Port := defPrt; end else RIO.URL := Addr; finally if (Result = nil) and (HTTPRIO = nil) then RIO.Free; end; end; initialization InvRegistry.RegisterInterface(TypeInfo(YtFaxWebServiceSoap), 'http://soap.model.service.YuanTel.com', 'utf-8'); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(YtFaxWebServiceSoap), 'http://soap.model.service.YuanTel.com/FaxDoAction');end.
來回都是以下... <?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://soap.model.service.YuanTel.com" />
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL : http://service.tel99.cn/YtFaxWebService.asmx?WSDL
// Encoding : utf-8
// Version : 1.0
// (2010/9/17 上午 11:38:10 - 1.33.2.5)
// ************************************************************************ //unit YtFaxWebService;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type // ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Borland types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:string - "http://www.w3.org/2001/XMLSchema" // ************************************************************************ //
// Namespace : http://soap.model.service.YuanTel.com
// soapAction: http://soap.model.service.YuanTel.com/FaxDoAction
// transport : http://schemas.xmlsoap.org/soap/http
// binding : YtFaxWebServiceSoap
// service : YtFaxWebService
// port : YtFaxWebServiceSoap
// URL : http://service.tel99.cn/YtFaxWebService.asmx
// ************************************************************************ //
YtFaxWebServiceSoap = interface(IInvokable)
['{67D18A09-D65C-6CDE-BBD4-DF9A35E18511}']
function YtDoAction(const _xml: WideString): WideString; stdcall;
end;function GetYtFaxWebServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): YtFaxWebServiceSoap;
implementationfunction GetYtFaxWebServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): YtFaxWebServiceSoap;
const
defWSDL = 'http://service.tel99.cn/YtFaxWebService.asmx?WSDL';
defURL = 'http://service.tel99.cn/YtFaxWebService.asmx';
defSvc = 'YtFaxWebService';
defPrt = 'YtFaxWebServiceSoap';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as YtFaxWebServiceSoap);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;
initialization
InvRegistry.RegisterInterface(TypeInfo(YtFaxWebServiceSoap), 'http://soap.model.service.YuanTel.com', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(YtFaxWebServiceSoap), 'http://soap.model.service.YuanTel.com/FaxDoAction');end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,YtFaxWebService, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
aa:YtFaxWebServiceSoap;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
aa:=GetYtFaxWebServiceSoap(False,'',nil);
ShowMessage(aa.YtDoAction(Edit1.Text));
end;end.
我是WinXP+D7
<string xmlns="http://soap.model.service.YuanTel.com" /> 我的環境是:中文繁體SP3+D7\D2010並存
我现在的问题是怎么搞都不行
<DataInfo><ActionUserInfo> <ActionCode>Login</ActionCode> <SessionID>201009150001</SessionID> <AppKey>54432966</AppKey> <LoginCode>7</LoginCode> <Param1 /> <Param2>[email protected]</Param2> <Param3>a12345678</Param3> </ActionUserInfo> </DataInfo>
[SoapDocumentMethod(Action = "http://soap.model.service.YuanTel.com/FaxDoAction",
RequestNamespace = "http://soap.model.service.YuanTel.com",
RequestElementName = "YtDoActionWrapper",//YtDoActionWrapper 特别定义的 如果对接时 对方会得到此方法名 要求对方写固定
ResponseNamespace = "http://soap.model.service.YuanTel.com",
ResponseElementName = "YtDoActionResultWrapper",
Use = SoapBindingUse.Literal,
ParameterStyle = SoapParameterStyle.Wrapped)] //参数风格为:Encoded 并且是Bare
[WebMethod(Description = "YtDoAction")] public string YtDoAction(string _xml)
{ //1 保存 _xml 时间
xmlAdd = new XML_Add();
string hostIP = Global.GetHostIP();
//WriteLog(DateTime.Now.ToString() + _xml + hostIP + "\n");
int state = xmlAdd.AddJoinAllXML("1", hostIP, DateTime.Now.ToString(), _xml);
//如果插入数据不成功并且没有异常的情况
另外,如果傳參數時用的是中文,請記得使用unicode方式
1.楼主调用该服务,没有该服务的输入参数说明,没有返回参数说明,你当然不知道如何使用该服务了。建议你去询问一下该服务的函数说明。
2. 在只能猜测该服务的参数作用的情况下,参数 _xml 貌似需要输入是一个XML文件全文本,于是我就使用了一段XML空白全文本
<?xml version="1.0" encoding="GB2312"?><Data></Data>
进行测试,结果服务出现错误,说明在服务端没有很好的处理XML,或者说我们猜测的这个参数 _xml 不是这么使用的。