C# RestSharp 格式 URL

C# RestSharp format URL

我正在使用电子签名 API (GetAccept)。我将 restsharp 用作 SDK,我的问题是我要发布到的端点如下所示:

https://api.getaccept.com/v1/documents/{DOCUMENT_ID}/send

从这里我想用另一个替换 'DOCUMENT_ID'(id 是一个字符串)。

我试过将其编码为 URI 但它不起作用,我也试过使用 client.BuildUri();我尝试使用 https://api.getaccept.com/v1/documents/{0}/send 然后为此使用 string.format。

public static void SendDocument()
{
    Uri myUri = new Uri("https://api.getaccept.com/v1/documents/" + id + "/send");// does not work
    Uri myUri = new Uri("https://api.getaccept.com/v1/documents/649r4tm3rz3/send");//works

    var client = new RestClient(myUri);
    var request = new RestRequest(Method.POST);
    request.AddHeader("Authorization", "Bearer " + access_token);
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);
}

我正在寻找能够正确格式化我的 URI 的解决方案,因为我认为这是问题所在。提前致谢

这解决了我的问题。

    string server = "https://api.getaccept.com";

                string relativePath = "/v1/documents/"+id+"/send";
                Uri serverUri = new Uri(server);
                Uri relativeUri = new Uri(relativePath, UriKind.Relative);
                Uri fullUri = new Uri(serverUri, relativeUri);


                var client = new RestClient(fullUri);
                var request = new RestRequest(Method.POST);
                request.AddHeader("Authorization", "Bearer " + access_token);
                IRestResponse response = client.Execute(request);

更好更简单的解决方案是这样的

Uri myUri = new Uri(string.format("https://api.getaccept.com/v1/documents/{0}/send",id));

根据 c# 的版本,您还可以使用

Uri myUsri = new Uri($"https://api.getaccept.com/v1/documents/{id}/send");