【问题标题】:How to access consume REST Web-Service with Silverlight (use Proxy?) without clientaccesspolicy.xml or crossdomain.xml如何在没有 clientaccesspolicy.xml 或 crossdomain.xml 的情况下使用 Silverlight(使用代理?)访问使用 REST Web 服务
【发布时间】:2011-11-03 18:43:21
【问题描述】:

如果您想使用 Silverlight 应用程序访问某些 REST Web 服务,第三方服务器(您要访问的服务所在的位置)需要根文件夹中的 clientaccesspolicy.xml 或 crossdomain.xml。

但是我如何使用或访问 REST 服务,该服务以 xml 文件响应,使用我的 Silverlight 应用程序,但该服务器上没有任何 clientaccesspolicy.xml 或 crossdomain.xml?

如果我在浏览器的地址字段中写入服务 url,我可以访问该服务并在浏览器中查看响应。您可以使用 GET 访问服务。

编辑:我已经假设我必须使用某种代理,但是对于 RESTful 服务如何?它是客户端代理还是服务器端代理?

如何开始?

【问题讨论】:

    标签: silverlight web-services cross-domain


    【解决方案1】:

    SL 安全策略阻止您访问不同域中的地址。因此解决方案是在您的 SL 应用程序的域中创建一个代理,它将请求转发到您想要的 Web 服务。

    【讨论】:

    • 我知道代理,但只知道肥皂 (wsdl) 服务。如何使用 REST 服务来做到这一点?我找不到任何示例如何在没有 crossdomain.xml 但使用代理的情况下访问休息服务!
    • 您必须在 Web 项目中编写代理,而不是在客户端。这样,您运行 .NET(或 Java 或其他)的服务器就不会受到 Silverlight 安全限制的影响。
    • 是的,但是它是什么样的代理?如果我要调用soap 或wcf 服务,我可以使用工具SLsvcUtil.exe 从服务元数据文档生成代理。但我调用的是 REST 服务。
    • 您必须手动创建它,并使用足以进行所有调用的 API。
    【解决方案2】:

    以上答案是正确的。我创建了一个方便使用 REST 的 Silverlight 客户端库。但是,更重要的是,我在 ASP.NET Core 上包含了对 BitBucket API REST 服务的传递,该服务演示了如何包含 Silverlight 的客户端访问策略。这一切都在这个 Git 存储库中:

    https://bitbucket.org/MelbourneDeveloper/restclient-.net

    库的 NuGet 是 安装包 RestClient.NET

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      相关资源
      最近更新 更多