0

我在无法访问 Internet 的内部网络上调用 EWS 服务。

我可以用浏览器打开 EWS url 并验证它是否正在运行。但是当我尝试发送 SOAP 请求时。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
       xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
       xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2007_SP1" />
  </soap:Header>
  <soap:Body>
    <m:GetFolder>
      <m:FolderShape>
        <t:BaseShape>IdOnly</t:BaseShape>
      </m:FolderShape>
      <m:FolderIds>
        <t:DistinguishedFolderId Id="calendar" />
      </m:FolderIds>
    </m:GetFolder>
  </soap:Body>
</soap:Envelope>

它失败并出现错误 ENOTFOUD。我假设它无法连接到 SOAP xml 中的给定地址以进行架构定义。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http ://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

没有互联网连接时如何处理。

我正在使用 lather.js 库从 meteor.js 应用程序发送请求。

4

1 回答 1

0

看起来像 URL:s 的东西,以 xmlns 为前缀,只是名称空间,不应被调用。有点像 java 程序中的命名空间(例如命名空间 com.sun.something)不是您可以调用的 url。

你应该只做一个http POST并将整个xml文件发送到soap服务器,它可以是一个不在互联网上的内部IP号码。

于 2016-05-26T13:09:21.620 回答