我正在尝试向网络服务发送请求, 这是WSDL: http://www.smsmelli.com/class/sms/webservice/server.php?wsdl
经过长时间的研究,我不知道和无类型的数组应该替换为字符串数组的数组; 直到这里,它解决了,但我意识到我的SOAP无法正常工作。 我检查完全相同的PHP操作,然后我发现它在SOAP的HTTP标头中设置了身份验证中的Credential;
in WireShark:
-HyperText Transfer Protocol
--Authorization: Basic Y3LIZ577838sdf=
---Credentials: YourUserName:YourPassWord
如何在Delphi 7中使用HTTPRIO SOAP设置它?
答案 0 :(得分:0)
我不知道Delphi 7,但在XE2中,THTTPRIO有一个HTTPWebNode属性,它具有用户名和密码的设置。
在HTTPWebNode的BeforePost中,您可以对HTTP标头进行详细操作,例如:
procedure TFrmTestEWS.HTTPRIO1HTTPWebNode1BeforePost(
const HTTPReqResp: THTTPReqResp; Data: Pointer);
const
CONTENT_HEADER_EX2010 = 'Content-Type: text/xml; charset=utf-8';
begin
// http://forum.delphi-treff.de/archive/index.php/t-31817.html
// Need to exchange the Content-Type Header, because Exchange 2010 expects
// 'Content-Type: text/xml; charset=utf-8' instead of
// 'Content-Type: text/xml; charset="utf-8"' which is RFC conform and used by XE2
HttpAddRequestHeaders(Data, PChar(CONTENT_HEADER_EX2010), Length(CONTENT_HEADER_EX2010), HTTP_ADDREQ_FLAG_REPLACE);
end;
希望这会有所帮助 扬