调用webservice出错
unit DataTransmissionService1;
interface
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
type
DataTransmissionService = interface(IInvokable)
['{5BAC4FD9-8B6F-C20F-1765-14E0CCFB7CFC}']
function transportEnergyData(const buildingid:WideString;const gatewayid:WideString;const sequence:WideString;const md5:WideString;const mymessage:WideString): WideString; stdcall;
function transportHeartBeat(const buildingid:WideString;const gatewayid:WideString): WideString; stdcall;
end;
function GetDataTransmissionService(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): DataTransmissionService;
implementation
function GetDataTransmissionService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): DataTransmissionService;
const
defWSDL = 'http://data.yangpufxjl.org:9000/DataTransmissionService?WSDL';
defURL = 'http://data.yangpufxjl.org:9000/DataTransmissionService';
defSvc = 'DataTransmissionService';
defPrt = 'DataTransmissionServicePort';
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 DataTransmissionService);
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(DataTransmissionService), 'http://platform.ems.jky/', 'UTF-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(DataTransmissionService), '');
InvRegistry.RegisterInvokeOptions(TypeInfo(DataTransmissionService), ioDocument);
InvRegistry.RegisterInvokeOptions(TypeInfo(DataTransmissionService), ioLiteral);
end.
调用代码如下:
var
sendstring:string;//要发送的数据包
mysend:DataTransmissionService;//webservice的服务器定义
md5:string;
begin
mysend:=GetDataTransmissionService(False,'',nil);
md5:=model.MD5Ecryption(AuthenticationKey+sequence);
sendstring:=mysend.transportHeartBeat(building_id,gateway_id);
end;
报错如下:
cannot find dispatch method for
{http://schemas.xmlsoap.org/soap/envelope/}string
是服务器没连上吗,第一次做webservice,真心不懂,望各位高手指点
相关推荐
Jquery调用webService远程访问出错的解决方法
原来web.config里面默认Post设置是不允许远程调用webservice,需要配置一下就可以了
Delphi 调用WebService 出错
Delphi 调用WebService 出错 1.新建一个App, 放上一个button, listbox, HTTPRIO 2.新建webservices -$amp;>amp;$nbsp;wsdlInmporter 导入你这个网站的Wsdl 让程序知道调用规则 不出意外会生成个WeatherWebService.pas ,主窗体引用它 3.设置HTTPRIO的 port, service, wsdlLocation 会下拉出来 4.写点代码吧 //得到支持的地区 procedure TForm1.Button1Click(Sender: TObject); var AOS,ss: ArrayOfString; I: Integer; begin AOS := (HTTPRIO1 as WeatherWebServiceSoap).getSupportProvince; for I := Low(AOS) to High(AOS) do Listbox1.Items.Add(AOS[I]); -- 可以把所有省份列出来 但是使用下面代码,出现错误: -- 取省份下的城市 ss := (HTTPRIO1 as WeatherWebServiceSoap).getSupportCity('广西') -- 取城市的天气 ss := (HTTPRIO1 as WeatherWebServiceSoap).getWeatherbyCityName('深圳'); ---- 错误信息为: Project Project1.exe raised exception class ERemotableException with message '服务器无法处理请求。 ---$amp;>amp;$nbsp;未将对象引用设置到对象的实例。'. Process stopped. Use Step or Run to continue. InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument); 把这句加上2005前的版本不加这个就出错,我也是找了很久才发现的 而且要加到initialization 最后一行,我加到initialization 之后紧接着第一行,就一直报错。
jquery调用webservice
用于jquery,通过ajax方法调用webservice接口,以及获取接口返回参数
PHP调用.NET的WebService 简单实例
主要介绍了使用PHP调用.NET的WebService的一个简单实例,十分的简单,有需要的小伙伴可以自己扩展下,如有疑问请留言。
spring boot 开发soap webservice的实现代码
主要介绍了spring boot 开发soap webservice的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


网络通信/分布式开发
