之前一直使用THTTPRIO调用C#写的http的webservice,现在要换成https的webservice,网上查了资料用TIdHTTPt和TIdSSLIOHandlerSocket实现,具体用法不清楚,请各位大侠帮帮忙,谢谢!
procedure TForm1.Button1Click(Sender: TObject);
begin
HTTPRIO1.WSDLLocation:='http://192.168.1.151/JYYWXTService/Service.asmx?wsdl';
HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=true;
HTTPRIO1.Service:='JYYWXTService';
HTTPRIO1.Port:='JYYWXTServiceSoap';
SaveServe:= HTTPRIO1 as JYYWXTServiceSoap;
Memo1.Lines.Add(SaveServe.UploadData('21010117113000001','18C55','B1,B2,B3,'));// UploadData接口函数
end;现在换成了“https://192.168.1.151/JYYWXTService/Service.asmx?wsd”不知道怎么调用UploadData了.
procedure TForm1.Button1Click(Sender: TObject);
begin
HTTPRIO1.WSDLLocation:='http://192.168.1.151/JYYWXTService/Service.asmx?wsdl';
HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=true;
HTTPRIO1.Service:='JYYWXTService';
HTTPRIO1.Port:='JYYWXTServiceSoap';
SaveServe:= HTTPRIO1 as JYYWXTServiceSoap;
Memo1.Lines.Add(SaveServe.UploadData('21010117113000001','18C55','B1,B2,B3,'));// UploadData接口函数
end;现在换成了“https://192.168.1.151/JYYWXTService/Service.asmx?wsd”不知道怎么调用UploadData了.
解决方案 »
- delphi socks5 udp 编程,有这方面经验的朋友帮下忙!!!
- 用Virtual Treeview怎么做带复选框的权限目录树呢?
- 如何在调用KeyPress事件中传递第二个参数(var Key: Char)?
- 两个表,有一相同字段name,这样的sql语句错在哪里?
- 关于无效的窗口句柄问题
- 请问哪里有较多的免费Delphi空间,特别是图形方面的。谢谢。
- delphi 怎样获取DLL接口中的事件
- var a:float; 这样生明一个变量为什么不行阿!
- 网络问题
- 一般来说,在上海delphi程序员月薪多少比较合适?
- VC SDK二次开发 转换Delphi
- var p: TfrPictureView;显示未定义? 怎么解决
1、要慢慢试 ,用THTTPRIO 和 TIdSSLIOHandlerSocket ,应该还有一个CookieManagement的控件 ,或者还有 不太记得了 。
2、用TIdHttp 加入 TIdSSLIOHandlerSocket ,抓包 然后 模拟发包 IdHttp.Post();
IdHttp.IOHandler := IdSSLIOHandlerSocket;
另外还需要用到libeay32.dll和ssleay32.dll两个dll,可以从网上下载
Var
sends:TStringList;
ResponseStream:TStringStream;
err_code:string;
begin
ResponseStream:=TStringstream.Create('',TEncoding.UTF8);
//idhttp1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(self);
idhttp1.AllowCookies := false;
idhttp1.HandleRedirects := false ;
idHttp1.Request.ContentType:='text/xml';
//idHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
idHttp1.Request.Charset := 'utf-8';
idHttp1.HTTPOptions :=[]; //关闭自动编码 sends := TStringList.Create;
sends.Text :=RequestSOAPHeader; //Webservice_url:='https://172.16.45.206:8443/oltp/ws/CksServices';
idhttp1.Post(Webservice_url,sends,ResponseStream); mmo1.Lines.Clear; Response :=ReplaceXMLSpecialChr(ResponseStream.DataString);
if CheckWebservicefault(Response,err_code) then
begin
mmo1.Lines.Add(Response);
mmo1.Lines.SaveToFile(extractfilepath(ParamStr(0))+'log\'+edtTRANSACTION_ID.Text+FormatDateTime('yyyyMMddHHmmss',now)+'.log');
ShowMessage(err_code);
Result :=False;
end
else
begin
mmo1.Lines.Add(Response);
mmo1.Lines.SaveToFile(extractfilepath(ParamStr(0))+'log\'+edtTRANSACTION_ID.Text+FormatDateTime('yyyyMMddHHmmss',now)+'.log');
Result :=True;
end;
end;