使用 flurl 处理 Get/{id} 与 Get/id
Handing Get/{id} vs Get/id with flurl
我正在尝试让 Flurl
正常工作,但我对传递 ID 时如何正常工作感到困惑。
[HttpGet("Get/{id}")]
public IActionResult Get(int id)
{
// Some something and return
}
以上预计
Get/1
所以在 Flurl 中:
var result = await _baseUrl
.AppendPathSegment("/Get")
.SetQueryParam("id", id)
.GetJsonAsync();
这会产生这个:
/Get?id=8
...然后失败并返回 404。
如何让 Flurl 设置一个查询参数 /id 或者让我的 get 接受 Get/id 和 Get?id=
我可以做下面的,但是看起来不是很优雅
var result = await _baseUrl
.AppendPathSegment(string.Format("/Get/{0}", id))
.GetJsonAsync();
我是这样使用的:
var result = "https://api.site.com/v1/".AppendPathSegment("endpoint").AppendPathSeparator().SetQueryParam("get", id)
// Outputs: "https://api.site.com/v1/endpoint/?get=5"
SetQueryParam
会将值添加为查询字符串,但您需要将该值作为路径的一部分。而是考虑使用 AppendPathSegments
方法,例如:
var result = _baseUrl
.AppendPathSegments("get", id)
.GetJsonAsync();
我正在尝试让 Flurl
正常工作,但我对传递 ID 时如何正常工作感到困惑。
[HttpGet("Get/{id}")]
public IActionResult Get(int id)
{
// Some something and return
}
以上预计
Get/1
所以在 Flurl 中:
var result = await _baseUrl
.AppendPathSegment("/Get")
.SetQueryParam("id", id)
.GetJsonAsync();
这会产生这个:
/Get?id=8
...然后失败并返回 404。
如何让 Flurl 设置一个查询参数 /id 或者让我的 get 接受 Get/id 和 Get?id=
我可以做下面的,但是看起来不是很优雅
var result = await _baseUrl
.AppendPathSegment(string.Format("/Get/{0}", id))
.GetJsonAsync();
我是这样使用的:
var result = "https://api.site.com/v1/".AppendPathSegment("endpoint").AppendPathSeparator().SetQueryParam("get", id)
// Outputs: "https://api.site.com/v1/endpoint/?get=5"
SetQueryParam
会将值添加为查询字符串,但您需要将该值作为路径的一部分。而是考虑使用 AppendPathSegments
方法,例如:
var result = _baseUrl
.AppendPathSegments("get", id)
.GetJsonAsync();