delphi调用webservice 向服务器传图片有人会吗 请问delphi调用webservice 向服务器传图片有人会吗? 我现在有个需求,要在delphi中调用webservcie 向java服务器端传图片。其他webservice接口调用都可以,但一传图片就不行。有哪位朋友给个思路 或demo? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关键是 服务端不是我写的。通过xml解析出的方法声明如下:function uploadVehPictureToLocalDb(const username: WideString; const picbs: TByteDynArray; const clsbh: WideString): ArrayOf_xsd_string; stdcall; 我该怎么传参数呢? 解决了 var vByte:TByteDynArray; msByte:TMemoryStream; iSize:Integer; HTTPRIO1:THTTPRIO; Iservice : Service1Soap;begin if Edit2.Text='' then begin showmessage('没有文件'); exit; end; if Edit5.Text='' then begin showmessage('上传后文件名没有写'); exit; end; msByte:=TMemoryStream.Create; msByte.LoadFromFile(Edit2.Text); setlength(vByte,msByte.size); msByte.position:=0; msByte.read(vByte[0],msByte.size); HTTPRIO1:=THTTPRIO.Create(self); HTTPRIO1.WSDLLocation := Edit1.Text; HTTPRIO1.HTTPWebNode.Agent := 'Borland SOAP 1.2'; HTTPRIO1.HTTPWebNode.UseUTF8InHeader := true; try Iservice:= HTTPRIO1 as Service1Soap; showmessage(Iservice.UploadFileBytes(vByte,Edit5.Text)) finally Iservice:=nil; HTTPRIO1.Free; msByte.Free; end; 楼主,怎么联系?我现在碰到一个问题:用Java开发的服务器我用Delphi调用,老是报错:cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher" 用Java开发的服务器我用Delphi调用,调用函数时老是报错:cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher" 、、 HTTPRIO1.WSDLLocation := 'http://130.251.9.98:8088/pms/propertyManagementFeeService?wsdl'; HTTPRIO1.Service := 'PropertyManagementFee'; HTTPRIO1.Port := 'PropertyManagementFeeImplPort'; HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=True;procedure TForm1.Button1Click(Sender: TObject);var myWp: PropertyManagementFeeImpl; myWS: WideString; str0,str1,str2,str3,str4,str5,str6:WideString; I: Integer;begin Memo1.Clear; myWp := HTTPRIO1 as PropertyManagementFeeImpl; str0:='1234'; str1:='112'; str2:='212'; str3:='31'; str4:='20100801'; str5:='20100805'; str6:=‘3333’ myWS := mywp.queryFee(str0,str1,str2,str3,str4,str5,str6); {for I := Low(myWS) to High(myWS) do begin Memo1.Lines.Add(myWS[I]); end; } Memo1.Lines.Add(myWS);end;请问是什么问题?? 通過以下的聲明的變量去解析xml吧:vByte:TByteDynArray; msByte:TMemoryStream; iSize:Integer; HTTPRIO1:THTTPRIO; Iservices : ServicesSoap; 刚开始时InvRegistry.RegisterInvokeOptions(TypeInfo(TestWebservice), ioLiteral ); ------报错“cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher" ”然后修改InvRegistry.RegisterInvokeOptions(TypeInfo(TestWebservice), ioDocument); ------就是把 ioLiteral 改成 ioDocument,现在不报错,可是 服务端收到的参数是null , 这是什么原因呢? 等待高手...-------Delphi客户端调用服务端的java webservice 刚才调用成功了,我只是把InvRegistry.RegisterInvokeOptions(TypeInfo(TestWebservice), ioDocument); 注释掉或者改成不是ioDocument和ioLiteral 都可以,具体为什么,我现在不知道,还请高手解答一下哈 高手不防看看.问题原因何在. delphi6下开发的com+组件在客户端无法访问!已经在网上搜索三天了!!!急救!!! EHlib框件安装问题,会的进来谈谈 怎样从DataGrid显示得行中查找某一行。 求文件夹加密的思路,大虾帮忙 哪位XDJM扔个ASCII表上来? 熟悉安装自制activex控件的高手进.... 数据库备份和整理? 《Delphi串口及语音传真高级编程》第69页第一段第一个单词? 这样使用缓存更新到底对不对!疑惑的…… Delphi 多线程帮助 请教简单的数据库增加和修改问题
function uploadVehPictureToLocalDb(const username: WideString; const picbs: TByteDynArray; const clsbh: WideString): ArrayOf_xsd_string; stdcall; 我该怎么传参数呢?
vByte:TByteDynArray;
msByte:TMemoryStream;
iSize:Integer;
HTTPRIO1:THTTPRIO;
Iservice : Service1Soap;
begin
if Edit2.Text='' then
begin
showmessage('没有文件');
exit;
end;
if Edit5.Text='' then
begin
showmessage('上传后文件名没有写');
exit;
end; msByte:=TMemoryStream.Create;
msByte.LoadFromFile(Edit2.Text);
setlength(vByte,msByte.size);
msByte.position:=0;
msByte.read(vByte[0],msByte.size);
HTTPRIO1:=THTTPRIO.Create(self);
HTTPRIO1.WSDLLocation := Edit1.Text;
HTTPRIO1.HTTPWebNode.Agent := 'Borland SOAP 1.2';
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := true;
try
Iservice:= HTTPRIO1 as Service1Soap;
showmessage(Iservice.UploadFileBytes(vByte,Edit5.Text))
finally
Iservice:=nil;
HTTPRIO1.Free;
msByte.Free;
end;
cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher"
cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher"
、、
HTTPRIO1.WSDLLocation := 'http://130.251.9.98:8088/pms/propertyManagementFeeService?wsdl'; HTTPRIO1.Service := 'PropertyManagementFee';
HTTPRIO1.Port := 'PropertyManagementFeeImplPort';
HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=True;procedure TForm1.Button1Click(Sender: TObject);
var
myWp: PropertyManagementFeeImpl;
myWS: WideString;
str0,str1,str2,str3,str4,str5,str6:WideString; I: Integer;
begin
Memo1.Clear;
myWp := HTTPRIO1 as PropertyManagementFeeImpl;
str0:='1234';
str1:='112';
str2:='212';
str3:='31';
str4:='20100801';
str5:='20100805';
str6:=‘3333’
myWS := mywp.queryFee(str0,str1,str2,str3,str4,str5,str6);
{for I := Low(myWS) to High(myWS) do
begin
Memo1.Lines.Add(myWS[I]);
end; }
Memo1.Lines.Add(myWS);end;
请问是什么问题??
msByte:TMemoryStream;
iSize:Integer;
HTTPRIO1:THTTPRIO;
Iservices : ServicesSoap;
InvRegistry.RegisterInvokeOptions(TypeInfo(TestWebservice), ioLiteral ); ------报错“cannot find dispatch method for{null}terminalNo using "payload Qname-based dispatcher" ”
然后修改
InvRegistry.RegisterInvokeOptions(TypeInfo(TestWebservice), ioDocument); ------就是把 ioLiteral 改成 ioDocument,
现在不报错,可是 服务端收到的参数是null , 这是什么原因呢? 等待高手...
-------Delphi客户端调用服务端的java webservice
或者改成不是ioDocument和ioLiteral 都可以,具体为什么,我现在不知道,还请高手解答一下哈