Avatar ·

Como unir URLs corretamente em C#? Análogo ao Path.Combine para endereços web

Olá a todos! Sou novo em C# e estou escrevendo um pequeno aplicativo para trabalhar com API. Preciso formar dinamicamente URLs de diferentes endpoints. Por exemplo, tenho uma URL base https://api.example.com/v1/ e quero adicionar a ela um caminho como /users/123 ou /products?page=2.

Tentei usar Path.Combine, como para caminhos de arquivos comuns, mas isso resulta em resultados estranhos. Aqui está um exemplo:

string baseUrl = "https://api.example.com/v1/";
string endpoint = "/users/123";
string result = Path.Combine(baseUrl, endpoint);
Console.WriteLine(result);
// Saída: "https:\\api.example.com\\v1\\users\\123"
// Observe: as barras estão invertidas!

Isso é um absurdo completo! Path.Combine usa barra invertida, pois é destinado ao Windows. Se eu tentar apenas concatenar strings com +, tenho problemas com barras duplas ou ausência delas.