SOAP delphi中的HTTP授权

时间:2013-01-05 18:20:53

标签: web-services delphi soap authorization delphi-7

我正在尝试向网络服务发送请求, 这是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设置它?

1 个答案:

答案 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;

希望这会有所帮助 扬