Y
yangliuhh
Unregistered / Unconfirmed
GUEST, unregistred user!
问题描述:
.net开发的webservice访问地址为:http://218.4.155.114:99/WebService/EntInterface.asmx?WSDL
用delphi7编写客户端程序,访问此webservice出现奇怪错误。
先file-new-other-webservice 选择wsdl importer 输入“http://218.4.155.114:99/WebService/EntInterface.asmx?WSDL”
生成单元文件EntInterface。有三个函数可以调用
function SendMessage(const strLoginCode: WideString; const strPass: WideString; const strSpNum: WideString; const strRecvNum: WideString; const strMsg: WideString; const bConfirm: Integer; const AtDate: WideString): WideString; stdcall;
function RecvMessage(const strLoginCode: WideString; const strPass: WideString): WideString; stdcall;
function GetStatus(const strLoginCode: WideString; const strPass: WideString; const strSendID: WideString): WideString; stdcall;
然后使用THTTPRIO调用webservice的函数
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := true;
HTTPRIO1.URL := "http://218.4.155.114:99/WebService/EntInterface.asmx ";
s := (HTTPRIO1 as EntInterfaceSoap).SendMessage( "aa ", "bb ", "55 ", "0123456 ", "aaa ",0, " "
Button1.Caption := s;
end;
1.调用SendMessage函数时出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.NullReferenceException: 未将对象引用设置到对象的实例。
at qxtweb.WebService.EntInterface.SendMessage(String strLoginCode, String strPass, String strSpNum, String strRecvNum, String strMsg, Int32 bConfirm, String AtDate)
--- 内部异常堆栈跟踪的结尾 --
2.调用GetStatus函数出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.ArgumentNullException: String 引用没有设置为 String 的实例。
参数名: s
at System.Text.UTF8Encoding.GetBytes(String s)
at TZCT.DB.SetRSAPass.Encrypting(String Source, String Key)
at qxtweb.WebService.EntInterface.RecvMessage(String strLoginCode, String strPass)
--- 内部异常堆栈跟踪的结尾 --
3.调用RecvMessage函数出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.ArgumentNullException: 值不能为空。
参数名: input
at System.Text.RegularExpressions.Regex.IsMatch(String input)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern)
at TZCT.DB.BaseFunction.IsUnsign(String str)
at qxtweb.WebService.EntInterface.GetStatus(String strLoginCode, String strPass, String strSendID)
--- 内部异常堆栈跟踪的结尾 ---
请高手帮忙看看怎么解决这个问题啊?
以前用delphi7调用webservice都很正常的
.net开发的webservice访问地址为:http://218.4.155.114:99/WebService/EntInterface.asmx?WSDL
用delphi7编写客户端程序,访问此webservice出现奇怪错误。
先file-new-other-webservice 选择wsdl importer 输入“http://218.4.155.114:99/WebService/EntInterface.asmx?WSDL”
生成单元文件EntInterface。有三个函数可以调用
function SendMessage(const strLoginCode: WideString; const strPass: WideString; const strSpNum: WideString; const strRecvNum: WideString; const strMsg: WideString; const bConfirm: Integer; const AtDate: WideString): WideString; stdcall;
function RecvMessage(const strLoginCode: WideString; const strPass: WideString): WideString; stdcall;
function GetStatus(const strLoginCode: WideString; const strPass: WideString; const strSendID: WideString): WideString; stdcall;
然后使用THTTPRIO调用webservice的函数
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := true;
HTTPRIO1.URL := "http://218.4.155.114:99/WebService/EntInterface.asmx ";
s := (HTTPRIO1 as EntInterfaceSoap).SendMessage( "aa ", "bb ", "55 ", "0123456 ", "aaa ",0, " "
Button1.Caption := s;
end;
1.调用SendMessage函数时出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.NullReferenceException: 未将对象引用设置到对象的实例。
at qxtweb.WebService.EntInterface.SendMessage(String strLoginCode, String strPass, String strSpNum, String strRecvNum, String strMsg, Int32 bConfirm, String AtDate)
--- 内部异常堆栈跟踪的结尾 --
2.调用GetStatus函数出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.ArgumentNullException: String 引用没有设置为 String 的实例。
参数名: s
at System.Text.UTF8Encoding.GetBytes(String s)
at TZCT.DB.SetRSAPass.Encrypting(String Source, String Key)
at qxtweb.WebService.EntInterface.RecvMessage(String strLoginCode, String strPass)
--- 内部异常堆栈跟踪的结尾 --
3.调用RecvMessage函数出现下列异常
发送消息出现错误 System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --- > System.ArgumentNullException: 值不能为空。
参数名: input
at System.Text.RegularExpressions.Regex.IsMatch(String input)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern)
at TZCT.DB.BaseFunction.IsUnsign(String str)
at qxtweb.WebService.EntInterface.GetStatus(String strLoginCode, String strPass, String strSendID)
--- 内部异常堆栈跟踪的结尾 ---
请高手帮忙看看怎么解决这个问题啊?
以前用delphi7调用webservice都很正常的