【问题标题】:Simple HTTP request to Odata web service works fine on localhost, but fails on server对 Odata Web 服务的简单 HTTP 请求在 localhost 上工作正常,但在服务器上失败
【发布时间】:2016-03-03 15:11:57
【问题描述】:

我正在尝试使用以下 PHP 代码向 Microsoft Dynamics NAV 2016 中的 Odata Web 服务发送基本 HTTP 请求:

$url = 'https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer(\'1\')';
$credentials = 'user:password';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $credentials);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Accept: application/json',
    'Content-Type: application/json'
]);
$output = curl_exec($ch);
curl_close($ch);

echo $output;

当我在localhost 上执行此代码时,它会返回预期的结果。

但是,当我在服务器上执行相同的代码时,浏览器会一直等待响应,直到超时。

我也尝试过使用the HTTPful library

$url = 'https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer(\'1\')';

$response = \Httpful\Request::get($url)
    ->sendsJson()
    ->authenticateWith('user', 'password')
    ->addHeaders([
        'Accept' => 'application/json',
        'Content-Type' => 'application/json'
    ])->send();

echo json_encode($response->body, JSON_PRETTY_PRINT);

结果是一样的。

localhost 和服务器都使用 PHP5.5 并启用了 cURL,并向例如发送 GET 请求。 http://en.gravatar.com/johnslegers.json 在服务器上工作得很好。

知道什么可能导致这个问题和/或如何解决它吗?

【问题讨论】:

  • 你的非本地服务器可以发出任何外部请求吗?
  • @Halcyon :发送 GET 请求到例如。 en.gravatar.com/johnslegers.json 在服务器上工作得很好。
  • 还有其他对 odata 网络服务的请求?
  • @Halcyon :到目前为止,我无法从我的服务器向这个特定的 Odata 服务发送任何请求......如果这个问题是由(1)一些模糊的在我的服务器上设置,(2) Microsoft Dynamics 中的某些设置或...(3) 其他任何设置。任何可以缩小我的范围的信息都会有所帮助。
  • 你能联系到运营服务的人吗?

标签: php curl odata microsoft-dynamics microsoft-dynamics-nav


【解决方案1】:

我已经检测到问题的原因:

  • Microsoft Dynamics NAV 2016 中的 Odata Web 服务使用端口 1103
  • 端口 80、443、25 和 110 是我尝试调用服务的服务器上打开的唯一端口

我们的 Microsoft Dynamics 提供商不能选择更改他们正在使用的端口,我们的网络托管服务提供商也不能选择为我们打开此端口。

在与我的老板讨论后,我们同意将我们的网络托管转移到另一个提供更多灵活性且不会阻塞端口 1103 的提供商。

【讨论】:

    猜你喜欢
    • 2016-05-12
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多