问题标签 [uritemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

wcf - WCF WebGetAttribute 的 UriTemplate 属性的奇怪行为

我已经完成了这个键盘的敲击工作。

我有一个 WCF 客户端项目,可用于访问 Yahoo GeoPlanet 服务。他们的自由文本查询端点之一可以表示如下:

有一个这样的实现,它调用 WCF 客户端(或多或少),如下所示:(这里有重试逻辑,但归根结底就是这样)

问题是,即使query参数是 url 编码的,当 WCF 发出实际的 HTTP 请求时, 的值%2F也会转换回正斜杠 ( /)。结果,像这样"Saint Augustine Tunapuna/Piarco, Trinidad and Tobago"的搜索(可以理解)被雅虎服务器以 400 Bad Request 拒绝。

最糟糕的是,这似乎只在客户端库用作非 Visual Studio 项目参考时才会发生。我在项目中有以下测试,始终通过:

当我在另一个项目中使用这个库时,它仅在客户端 .csproj 是另一个项目的解决方案的一部分时才有效,并且作为项目引用被引用。一旦我将它作为 NuGet 包或直接 dll 文件引用包含在内,它就会失败。

我已经进入了代码,看起来 URL 在传递给Channel. 然而,在那之后的某个时候,%2F搜索字符串中的 被转换回正斜杠。我知道这一点的唯一原因是检查提琴手中的请求。

0 投票
0 回答
484 浏览

c# - 来自 UriTemplate 的 WCF REST 参数中的某些字符是 HTML 编码的

我定义了以下 Web 服务接口(WCF 服务)方法:

如果我向以下位置发出 HTTP POST 请求:“(host)/sites/1234/storage/%D0%BC%D0%B0%D0%BC%D0%B0.html”(这是“мама”的 URL 编码版本.html")

参数filePath读作“мама.html”,这是错误的。

我希望它直接读作“мама.html”。

然而,“м” 是“м”字符的 html 编码版本。

为什么 WCF/UriTemplate 会这样?我怎样才能直接获得字符串的直接表示,而不是对某些字符进行 html 编码?web.config 中是否有此设置?它是一个错误吗?

0 投票
2 回答
585 浏览

spring - Spring MVC URI 模板处理是否实现 RFC 6570?

我试图找到关于如何解析 Spring MVC 中的 URI 模板的明确答案。文档链接到 RFC 草案,但 Spring 没有在RFC 的实现页面中列出 另一方面,这个页面似乎建议他们使用 SpEL。任何人都有一个可以为我清除这个的链接?

0 投票
2 回答
903 浏览

asp.net - 可以使用 URI 模板将 URI 与路由匹配吗?

ASP.NET 或 Nancy 等框架提供了可用于指定路由的语法,例如:

在 ASP.NET 中,路由有两个方向。它们可以将请求 URI 匹配/customers/32/invoices/19到路由,并且可以将参数解析{ id: 37, invoiceId: 19 }为 URI。

RFC 6570:URI 模板也定义了一个类似的,但更丰富的 URI 规范,通常用于解析URI。例如:

我的问题是,可以使用 RFC 6570 中指定的语法将请求 URI 与路由匹配吗?是否有一部分语法会使给定 URI 与给定 URI 模板的匹配变得模棱两可?是否有任何库支持将 URI 与 URI 模板匹配?

0 投票
1 回答
647 浏览

wcf - WCF url $ 中的特殊字符不再在带有 .NET 4.5 的 WINdows 2012 上

我有一个使用 uri 模板的 WCF REST API。其中一个 Uri 模板如下所示:[WebGet(UriTemplate="List/Data.svc/$count")]。

在 Windows 2008r2 中,此 url 工作正常,但在某些 2012 服务器上失败。当我查看日志(我内部编写的日志,而不是 IIS 日志)时,2008r2 请求如下所示:

2012 年的服务器 URL 如下所示:

同一设备上的完全相同的应用程序同时发出了两个请求,所以我 99.999% 确信这与应用程序发出请求的方式没有区别。

WCF 是否对传入请求进行任何 url 编码?

在 WCF 的 Windows Server 2012 上有很多与 .NET 4.5 相关的 KB 修复,但我找不到一个完整的列表,而且我还没有找到一个似乎与此问题相关的列表。

在 Windows 2012 服务器上,如果您转到 .../test.svc/$test 它可以工作,您将看到“测试成功!”。如果您在 Windows Server 2012 r2 服务器上执行相同操作,您将收到“糟糕!这不是正确的路线!”

0 投票
1 回答
387 浏览

wcf - WCF 的复杂 UriTemplate

我对 WCF 和 Web 服务完全陌生。

我需要创建一个基于 REST 的 wcf 服务,我已经从代码项目中获得了示例演练。

我想要像 https://example.com/ {v}/{resource}?filter={attribute}{op}{value}&sortBy={attributeName}&sortOrder={ascending|descending}&attributes={这样的 Uri 模板csv中的属性列表}

属性:要搜索的属性 op:operator( eq,and,or,neq,like,contains 的格式) value:要搜索的属性值 attributeName:sortBy 属性名 sortOrder 应该是升序或降序的枚举。属性:csv中的属性列表

这可能吗?

谁能帮我为此配置 UriTemplate 和 OperationContract?

0 投票
1 回答
1188 浏览

wcf - OperationContract 名称和 UriTemplate

我创建了一个服务方法。这有 OperationName 和 UriTemplate。根据我的情况,我混淆了这两个名称。

我的理解

Operation Contract Name 指定方法的名称,如别名。因此,如果我没有给出任何 UriTemplate,则 name 属性中指定的名称将被视为如下所示的名称

UriTemplate 用于绑定参数绑定,以便我们可以自定义参数映射。因此,如果我像 /MyMethod/{p1} 这样添加 UriTemplate,他的服务会帮助显示像

这是我的困惑。那么,如果我添加两者对名称没有影响?那么这是使用的最佳实践。那么你能告诉我确切的含义吗?这是最好的做法。

0 投票
1 回答
689 浏览

java - 一个URI模板形式的无限数量的路径变量

我现有的代码如下:

我希望能够添加使用任意数量的路径变量发出请求的功能,但保持与上述相同的模式(即 /id/type/answer/id/type/answer/id/type/answer/. ..ETC。)。

因此,理想情况下,我希望能够创建一个支持以下两个 URL 的 API 调用:

http://www.example.com/sendAnswer/id1/typeA/0

http://www.example.com/sendAnswer/id1/typeA/0/id2/typeB/1/id3/typeA/0

有没有人有任何想法?

0 投票
2 回答
1250 浏览

c# - 具有自定义 WCF 4.5 WebHttpBehavior 的 UriTemplates

我正在实现自定义 WCF REST 行为,它实现/覆盖基本 WebHttpBehavior,但允许使用自定义序列化程序进行 REST 通信。该代码基于 Carlos在此处的工作。

我已经让它运行了,但问题是我们真的很想使用 UriTemplate 功能来允许真正的 REST-ful URI。有没有人看到这样做或可以提供帮助以找到正确的实施?

我们坚持使用 WCF 是为了同时提供 REST 和 SOAP 端点,因此这里不能选择迁移到 Web API。

0 投票
1 回答
222 浏览

c# - UriTemplate 参数和方法参数的区别

考虑代码

UriTemplate 中存在的参数是否与方法参数相同?如果没有,什么时候需要/需要它们?

谢谢。任何输入表示赞赏。