★☆★☆★☆★急手问题,请高手详细指教!!感激不尽!!
时间:2011-12-21
来源:互联网
接口访问地址:
http://192.168.0.1/VAService.asmx?hhds
上传的函数调用说明:
string writeSurveil(string code, string txtDoc)
返回:String
参数:code 默认为‘aa’。
txtDoc 为要上传的txt文件。
提供接口返回参数标准:
<code>1</code>成功,其他为异常;
<message>数据上传成功 </message>异常报错信息通过此参数传出。
求高手赐教,详细赐教,请大伙帮忙,感激不尽!!!!!
作者: zhouziqiang 发布时间: 2011-12-21
作者: bdmh 发布时间: 2011-12-21
作者: kaikai_kk 发布时间: 2011-12-21
2)上传的应该是调用webservice服务。
delphi调用这个也方便,添加wsdl的引用就ok
作者: ksrsoft 发布时间: 2011-12-21
该回复于2011-12-21 11:55:21被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#5楼 得分:0回复于:2011-12-21 11:21:00
|
作者: lovemoon714 发布时间: 2011-12-21
1、打开DELPHI,新建(New)->其他(Other)->WebServices->WSDL Importer
2、在出现的对话框把 http://192.168.0.1/VAService.asmx?WSDL 粘贴进去!(注意必须要有WSDL)
3、在DLEPHI中会生成一个单元大概如下:
unit FPWebServiceAPI;
interface
uses 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"
//服务头,其实就是一个调用服务的用户名密码,如果对方没有设置,则这个没有!
ServerHeader = class; { "fdsafds"[H] }
//返回类,如果对方没有设置也没有,(可能返回值直接由函数返回一个整型值)
fdsa_Result = class; { "fdsafds" }
// ************************************************************************ //
// Namespace : CRM.WebSev
// ************************************************************************ //
//表头类(可以没有)
ServerHeader = class(TSOAPHeader)
private
Header1: WideString;
published
property Header1: WideString read FHeader1 write FHeader1;
end;
//注意这个带Soap的东西,他很重要
VAServiceSoap = interface(IInvokable)
['{09D83DCC-E14F-35AE-3412-9090246E387B}']
//注意这里就是你要调用的函数了
writeSurveil(const code:wideString,cont txtDoc:widestring):返回值;
end;
function GetVAServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): VAServiceSoap ;
implementation
function GetVAServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GetVAServiceSoap;
const
defWSDL = 'http://localhost:2071/VAService.asmx?WSDL';
defURL = 'http://localhost:2071/VAService.asmx;
defSvc = 'VAServiceAPI';
defPrt = 'VAServiceSoap';
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 'VAServiceSoap');
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('VAServiceSoap'), 'CRM.WebSev', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo('VAServiceSoap'), 'CRM.WebSev/%operationName%');
InvRegistry.RegisterHeaderClass(TypeInfo('VAServiceSoap'), ServerHeader, 'ServerHeader', '');
InvRegistry.RegisterInvokeOptions(TypeInfo('VAServiceSoap'), ioDocument);
RemClassRegistry.RegisterXSClass(ServerHeader, 'CRM.WebSev', 'ServerHeader');
RemClassRegistry.RegisterXSClass(HDSoftWareAPI_Result, 'CRM.WebSev', 'HDSoftWareAPI_Result');
end.
4、调用
//定义
HTTPRIO: THTTPRIO; //代理服务对象
FSoap:VAServiceSoap ; //WebService服务对象
Header: ISOAPHeaders; //web服务的报头代理(如果没有表头,这个可以不定义)
FServiceHeader:ServerHeader; //web服务的报头对象(如果没有表头,这个可以不定义)
//实例化
HTTPRIO := THTTPRIO.Create(nil);
FSoap := (HTTPRIO as HDCompanyServiceAPISoap);
//表头,如果没有以下可以不用
FServiceHeader:=ServerHeader.Create;
FServiceHeader.表头字符串 := 'fdsafdsa';
Header:=(FSoap as ISOAPHeaders);
//调用服务
//如果有表头,先发送表头
Header.Send(FServiceHeader);
//调用函数(就像调用本地函数一样
FSoaq.writeSurveil(code,文件名);
//记得释放资源
if HTTPRIO<>nil then
HTTPRIO:=nil;
if FSoap<>nil then
FSoap := nil;
if FServiceHeader<>nil then
FServiceHeader.Free;
if Header<>nil then
Header:=nil;
作者: jubobo 发布时间: 2011-12-21
作者: nm_wyh 发布时间: 2011-12-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28