【问题标题】:PHP proxy server working half of the timePHP代理服务器工作一半时间
【发布时间】:2011-09-10 21:29:02
【问题描述】:

我对 PHP 几乎一无所知。我正在尝试赠送一组依赖于 Web 服务的财务计算器,该服务可通过 .NET 代理或 PHP 代理访问。我已经在 3 个不同的服务器(windows 和 linux)上安装了 PHP 代理,并且该设置始终对我有用。然而,我有网站管理员写的,他们无法让它运行。

我希望有调试经验的人可以尝试一下:

http://www.pine-grove.com/online-calculators/pgs-html-calculators.htm

这里有更多背景信息,可以节省您一些时间。

其中包含一个安装 PDF。但基本上解压在一个文件夹中。建议“计算器”。找到 js/calculator.js。在大约第 11 行,编辑此行以指向已安装的代理:

var strWebService = 'http://{www.your-server.com}/Calculators/proxies/calculators.php';

这就是所有应该要求的。 HTTPRequest 对象的 responseText 字段包含此错误:

肥皂:ReceiverServer 无法处理请求。 ---> '\' 是一个意外的标记。预期的标记是 '"' 或 '''。第 1 行,位置 15。**

这似乎适用于大多数人,但对于少数人来说,它不起作用。 在此先感谢,我希望有人能解决这个问题。

【问题讨论】:

    标签: php soap proxy


    【解决方案1】:

    一些事情:

    1. curl_setopt($ch, CURLOPT_HEADER, 1); 可能不是你想要的。这会导致响应标头作为文本包含在$result 的头部。通过echo 回复它们,它们不会神奇地成为对calculator.php 的请求的响应标头;它们是响应正文的一部分。
    2. 四秒超时可能太小了。如果它适用于您,但不适用于网站管理员,那么我猜测 calculator.php 执行的 CURL 请求对网站管理员来说已超时,并且发回了一条说明这一事实的警告。
    3. 这些看起来不对:

      $header[] = "Content-Type: text/xml; charset=utf-8";
      $header[] = 'http://com.pine-grove/' + $wsMethod;
      
    4. 去掉最后的 PHP 结束标签 ?>。通常不需要它,并且您可能会发回额外的空格,例如在这种情况下,calculator.php 无意中将 CR+LF 附加到所有代理响应的正文中。

    【讨论】:

    • 感谢您的回复。我已经进行了建议的修改,我会让网站管理员尝试更新后的代理并将结果发回。我将 CURLOPT_HEADER 更改为 0,将超时时间更改为 30,并删除了结束 PHP 标记。更改代理仍然适用于测试服务器。稍后会报告站长所说的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2011-06-21
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多