2

我正在努力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();
4

2 回答 2

2

SetQueryParam会将值添加为查询字符串,但您需要将该值作为路径的一部分。而是考虑使用该AppendPathSegments方法,例如:

var result = _baseUrl
    .AppendPathSegments("get", id)
    .GetJsonAsync();
于 2017-08-02T12:55:09.010 回答
1

我这样使用它:

var result = "https://api.site.com/v1/".AppendPathSegment("endpoint").AppendPathSeparator().SetQueryParam("get", id)
// Outputs: "https://api.site.com/v1/endpoint/?get=5"
于 2017-08-02T12:51:18.323 回答