【发布时间】:2010-01-17 16:14:04
【问题描述】:
我需要将一些数据从内部网络上的 SQL DB 服务器发送到外部 Web 服务器。
我希望通过编写一个每天调用一次的 VB.NET 应用程序来实现这一点,该应用程序将大约 1 MB 的数据发送到 Web 服务器上的 PHP 脚本,并存储在数据库中。
从 .NET 应用程序向 PHP 脚本发送数据的好方法是什么?
【问题讨论】:
我需要将一些数据从内部网络上的 SQL DB 服务器发送到外部 Web 服务器。
我希望通过编写一个每天调用一次的 VB.NET 应用程序来实现这一点,该应用程序将大约 1 MB 的数据发送到 Web 服务器上的 PHP 脚本,并存储在数据库中。
从 .NET 应用程序向 PHP 脚本发送数据的好方法是什么?
【问题讨论】:
您可以像浏览器一样使用HTTPWebRequest 类将文件发布到您的php 脚本中。如果您发送的文件是基于文本的,例如 XML 或 CSV,则可以完成一个简单的帖子。但是,如果您需要发送二进制数据,您可以对其进行 base64 编码,然后在 PHP 的另一端对其进行解码,或者使用multipart forms 将其作为文件发布。除非您有特定的理由使用多部分表单,否则可能不值得这么费劲,您应该只使用 base64 对数据进行编码。
【讨论】:
Web 服务将是可行的方法,也许是通过 XML 的 SOAP 将数据直接推送到 PHP。
如果你走 middaparka 的路线,你不会将它直接推送到 PHP,而只是使用 include 语句使其对 PHP 可用。如果您希望 PHP 在收到数据后立即处理,您可能需要第一个选项。
【讨论】:
如果您追求可靠手段,我会倾向于使用 FTP 而不是 HTTP 作为数据传输手段 - 它会让事情在以下方面更容易管理错误处理等,特别是如果您遵循一些良好做法,例如将文件上传到临时文件夹,然后在上传完成后将它们移动(以 FTP 术语重命名)到拾取文件夹。
在具体功能等方面,PHP的FTP相关功能非常丰富(key docs here)。不幸的是,我不知道相关的 .NET 框架零碎,但我敢肯定,如果 MSDN 不交付货物,这里有人会为您指明正确的方向。
【讨论】:
您可能想要使用 JSON 或 XML。
【讨论】:
另一个想法可能是对基于 PHP 的网站执行 HTTP PUT 请求并传输您的数据。
在此处了解如何接受通过 HTTP 发送的内容放入 PHP http://php.net/manual/en/features.file-upload.put-method.php
在此处查看如何从 .net 应用程序执行 HTTP PUT 请求 http://www.java2s.com/Code/CSharp/Network/HTTPputwithusernameandpassword.htm
【讨论】: