通过delphi,我正在使客户端与ws通信。
visualizzaErogatoPT = interface(IInvokable)
['{AD9DB9DE-E3E4-1FD0-171D-FD78913E0E54}']
function visualizzaErogato(const VisualizzaErogatoRichiesta: VisualizzaErogatoRichiesta): VisualizzaErogatoRicevuta; stdcall;
end;
function GetvisualizzaErogatoPT(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): visualizzaErogatoPT;
VisualizzaErogatoRichiesta = class(TRemotable)
private
FpinCode: stringType;
FcodiceRegioneErogatore: stringType;
FcodiceAslErogatore: stringType;
FcodiceSsaErogatore: stringType;
Fpwd: pwdType;
Fnre: nreType;
FcfAssistito: stringType;
FcfAssistito_Specified: boolean;
FtipoOperazione: tipoOperazioneType;
procedure SetcfAssistito(Index: Integer; const AstringType: stringType);
function cfAssistito_Specified(Index: Integer): boolean;
public
constructor Create; override;
published
property pinCode: stringType read FpinCode write FpinCode;
property codiceRegioneErogatore: stringType read FcodiceRegioneErogatore write FcodiceRegioneErogatore;
property codiceAslErogatore: stringType read FcodiceAslErogatore write FcodiceAslErogatore;
property codiceSsaErogatore: stringType read FcodiceSsaErogatore write FcodiceSsaErogatore;
property pwd: pwdType read Fpwd write Fpwd;
property nre: nreType read Fnre write Fnre;
property cfAssistito: stringType Index (IS_OPTN) read FcfAssistito write SetcfAssistito stored cfAssistito_Specified;
property tipoOperazione: tipoOperazioneType read FtipoOperazione write FtipoOperazione;
end;
procedure TMainF.Button2Click(Sender: TObject);
var
richiesta: VisualizzaErogatoRichiesta;
ricevuta: VisualizzaErogatoRicevuta;
begin
richiesta.codiceRegioneErogatore := '190';
richiesta.codiceAslErogatore := '201';
richiesta.codiceSsaErogatore := '888888';
richiesta.pwd := '';
richiesta.nre := '1900A4005026299';
richiesta.tipoOperazione := '1';
try
ricevuta := (HTTPRIO1 as visualizzaErogatoPT).visualizzaErogato(richiesta);
label1.Caption := ricevuta.nre;
except
on E: Exception do
showmessage(E.Message);
end;
end;
我得到一个错误。(EsoapDomConvertError...。肥皂类必须从Tremotable中插入)
对于身份验证,我使用了以下组件: HTTPRIO和HTTPReqResp
procedure TMainF.HTTPReqResp1BeforePost(const HTTPReqResp: THTTPReqResp;
Data: Pointer);
var
auth: String;
FUserName, FPassword : string;
begin
FUserName:='XXXXXXXX';
FPassword:='XXXXXXXX';
auth := 'Authorization: Basic ' + TNetEncoding.Base64.Encode(FUserName + ':' + FPassword);
HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD);
end;
我尝试了各种方法,但没有结果。 我是否必须使用WS所需的“基本”身份验证组件(HTTPRIO和HTTPReqResp)? 我正在寻找构建它的指南。
答案 0 :(得分:1)
对于HTTP基本身份验证,此代码(放置在调用SOAP服务之前)应该可以工作:
ts.resample('B').ffill()
ts.resample('B').ffill()
Out[17]:
2018-01-03 1.0
2018-01-04 1.0
2018-01-05 1.0
2018-01-08 1.0
2018-01-09 1.0
2018-01-10 2.0
2018-01-11 2.0
2018-01-12 2.0
2018-01-15 2.0
2018-01-16 2.0
2018-01-17 3.0
2018-01-18 3.0
2018-01-19 3.0
2018-01-22 3.0
2018-01-23 3.0
2018-01-24 NaN
Freq: B, dtype: float64
代替事件处理程序HTTPRio1.HTTPWebNode.UserName := 'XXXXXXXX';
HTTPRio1.HTTPWebNode.Password := 'XXXXXXXX';