性能明智在c#中将xml数据发送到php文件的最佳方法

时间:2012-10-26 04:38:18

标签: c# php xml

我有一个XML文件,我希望它发送php页面将其写入mysql数据库。

举个例子, 我有一个名为data的类,它具有很少的属性。然后将这些对象值保存在本地缓存中作为xml文件,如下所示:

<data>
   <value1></value1>
   <value2></value2>
   ..........
</data>

所以我想将这些数据发送到mysql数据库。 我的服务器端使用PHP,我是新来的PHP。 那么发送这些数据的最佳方式是什么。

  1. 通过数据访问对象(c#)
  2. 将这些值作为参数发送
      

    string data =“&amp; value1 =”+ d.value1 +“&amp; value2 =”+ d.value2 ........;

    2。  将xml文件直接发送到php页面,并在php文件中读取xml文件并获取所需数据

    发送这些数据的最佳方式是什么? (表现明智)

1 个答案:

答案 0 :(得分:1)

答案可能是'它取决于'。

  1. 您的XML结构有多复杂,在服务器端(PHP)解析它有多容易?如果XML本身相对简单且参数数量不太可能显着增加,您可以考虑将它们作为URL的一部分发送。但是,如果XML将会发生变化并变得更加复杂,那么最终可能会不断发明使用这种方法将XML转换为URL参数的自行车。

  2. 将XML直接发送到服务器端可能更容易,因为您不需要将XML转换为URL参数。此外,您不需要关心XML的大小,而使用您需要的URL查询参数 - URL不应超过2083 symbols

  3. 此外,如果您使用URL参数方法,请注意字符串连接 - 您需要转义数据的值,例如使用Uri.EscapeDataString方法。

    在性能方面,有三个方面需要考虑:

    1. 如果没有太多的URI转义且参数具有相当微不足道的值(即大多数数字/ ASCII字符),由于使用HTTP GET而不是HTTP POST而且参数数量较少,参数可能会更快地传输要转移的数据。但是,传输增益将被XML转换为参数的成本所抵消,尽管对于小型XML来说这可以忽略不计。

    2. 如果XML结构复杂且数据中的值具有任意长度,那么在某些情况下,它转换为URL参数可能效率低下甚至是不可能的。如果你最终使用的是HTTP POST而不是HTTP GET,那么转换为参数就完全没有意义了。

    3. 在服务器端解析XML可能比解析URL参数要慢。但是,这是值得怀疑的,需要进行适当的测量。

    4. 最后,可能会建议考虑一下 - 为什么这种低级别的性能在开发的这个阶段对您感兴趣?你有一些性能问题,发现瓶颈在于那个小细节吗?见an excellent article about performance by Eric Lippert here。您可能最好采用最直接的解决方案(即最容易编码和维护),并在以后测量性能问题。