有点边缘问题,但这里有。
我正在研究编写使用FTP协议访问的WCF服务的方法。客户端将运行的系统仅通过端口21访问FTP - 所有其他流量都被阻止,并且通过端口21的非FTP流量也被过滤掉(尝试通过运行RESTful服务)港口21没有运气)。我已经读过SOAP可以用于各种协议(HTTP,FTP,SMTP等)。我在各种端口上使用HTTP绑定使服务正常工作,但我仍然坚持将其绑定到FTP。有没有人有这方面的经验?
答案 0 :(得分:0)
作为从SOAP到另一个环境的网关的一个例子,可以想象一个SOAP到FTP网关,其中FTP命令被映射到SOAP消息。为了实际与FTP服务器通信,调用必须用FTP可理解的语言表达,而不是用SOAP表示。
<?php
$myLogin = 'foo';
$myPass = 'bar';
$env = '<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<m:path xmlns:m="http://www.soap.org/path">
<m:action>http://www.im.org/chat</m:action>
<m:to>soap://D.com/some/endpoint</m:to>
<m:forward>
<m:via>soap://B.com</m:via>
<m:via>soap://C.com</m:via>
</m:forwawd>
<m:reverse>
<m:via/>
</m:reverse>
<m:from>mailto:frystyk@microsoft.com</m:from>
<m:id>uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6</m:id>
</m:path>
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>';
$socket=fsockopen('http://example.com', 21);
$t=fgets($socket, 128);
fwrite($socket, "USER $myLogin\r\n");
$t=fgets($socket, 128);
fwrite($socket, "PASS $myPass\r\n");
$t=fgets($socket, 128);
fwrite($socket, "PUTS $env\r\n");
fwrite($socket, "QUIT\r\n");
fclose($socket);
?>
<强>参考强>