delphi – THttprio onBeforeExecute更改soapRequest
发布时间:2020-12-15 09:22:11 所属栏目:大数据 来源:网络整理
导读:我为项目导入了一些wsdl. 我想在HttpRio onBeforeExecute事件上更改SoapRequest,但是 因为我更改了请求,我得到一些错误如何更改请求xml文件 在此事件中使用stringReplace函数. 我试图改变流的大小,我改变了编码等,但无论如何它没有工作. 例 procedure TForm1
我为项目导入了一些wsdl.
我想在HttpRio onBeforeExecute事件上更改SoapRequest,但是 因为我更改了请求,我得到一些错误如何更改请求xml文件 在此事件中使用stringReplace函数. 我试图改变流的大小,我改变了编码等,但无论如何它没有工作. 例 procedure TForm1.RiomBeforeExecute(const MethodName: string; SOAPRequest: TStream); var sTmp : TStringList; begin sTmp:=TStringList.Create; SOAPRequest.Position := 0; sTmp.LoadFromStream(SOAPRequest); sTmp.Text := StringReplace(sTmp.Text,'blablaa','bla',[RfReplaceAll]); sTmp.SaveToStream(SOAPRequest); // blaa blaa... end; 解决方法
可能的增强……我发现,根据我的情况(这是在肥皂反应中,顺便说一下,如果重要的话),如果结果请求比原始请求短(并且在你的情况下是),那就是将新字符串写回流中时遗留下来.
例如: original: <blablaa some stuff> intended: <bla some stuff> actual: <bla some stuff>uff> 固定: SOAPRequest.Postion:= 0; //我在这里忘记了这一点,因为我编写了有效的代码SOAPRequest.size:= length(sTmp.Text); //重要 – 保存前设置新长度.sTmp.SaveToStream(SOAPRequest); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |