【问题标题】:PHP - Data import to Tally - Timeout ErrorPHP - 数据导入到 Tally - 超时错误
【发布时间】:2019-11-11 11:50:08
【问题描述】:

我正在使用以下代码将 PHP 连接到计数。但它在移至生产时显示超时错误。但是当我在本地机器上运行代码时成功插入数据显示错误无法连接到 xxx.xxx.x.xx 端口 9000: 连接超时出现问题.....稍后再试

<?php
/* This is PHP code to insert an entry in Tally. All required XML tags by Tally are taken here in a string and name for Ledger is taken by posted value from HTML form. */
$requestXML = '<?xml version="1.0"?>
        <ENVELOPE>
<HEADER>
<TALLYREQUEST>Export Data</TALLYREQUEST>
</HEADER>
<BODY>
<EXPORTDATA>
<REQUESTDESC>
<STATICVARIABLES>

<!--To Fetch data in XML format-->
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>

<!--To Fetch data in HTML format, change the SVEXPORTFORMAT Tag value as -->
<!--$$SysName:HTML-->

</STATICVARIABLES>
<REPORTNAME>Balance Sheet</REPORTNAME>
</REQUESTDESC>
</EXPORTDATA>
</BODY>
</ENVELOPE>';

/* Actual code for importing goes here */
        $server = 'http://xxx.xxx.x.xxx:9000';
        $headers = array( "Content-type: text/xml" ,"Content-length: ".strlen($requestXML) ,"Connection: close" );

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $server);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 100000);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        $data = curl_exec($ch);

        if(curl_errno($ch))
        {
            print curl_error($ch);
            echo "  something went wrong..... try later";
        }
        else
        {
            echo " request accepted";
            print $data;
            curl_close($ch);
        }


?>

【问题讨论】:

  • 当您在 localhost 上运行此代码时,它是否连接到相同的 IP 地址?
  • 是的,已连接

标签: php mysql curl tally


【解决方案1】:
  1. http://xxx.xxx.x.xxx:9000 - 这是本地主机,例如 127.0.0.1?如果 因此,您将无法从远程服务器访问它。
  2. 它看起来像一个 LAN IP(例如 192.168.0.104)。在这种情况下,它 可以通过 LAN 访问(同一网络,另一台计算机),但是 不是来自远程服务器(不在同一个 LAN 上)。
  3. 如果不是本地主机/局域网 IP,它是静态 IP 吗?我的意思是,本地 ISP 不会不断更改此 IP?
  4. 如果是静态IP,Windows防火墙是否允许ping 9000端口?

您的生产服务器无法访问此 IP/端口,这就是连接超时错误的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多