0

Web アプリケーションを作成しようとしていますが、API に接続したいと考えています。ファイルにベースアドレスがありStartup.csます:

services.AddHttpClient("API Client", client =>
{
    client.BaseAddress = new Uri("https://icanhazdadjoke.com/");
    client.DefaultRequestHeaders.Add("Accept", "application/json");
});

/searchしかし、URLアドレスにaを追加して、プログラムで変更したいと思います。私は使用UriBuilderしていますが、次のようになります。

string responseBody = "";
var client = _httpClientFactory.CreateClient("API Client");
var builder = new UriBuilder(client.GetAsync("") + "/search");
var query = HttpUtility.ParseQueryString(builder.Query);
query.Add("term", searchedTerm);
query.Add("limit", jokesPerPage);

builder.Query = query.ToString();
string url = builder.ToString();
responseBody = await client.GetStringAsync(url);
return JsonConvert.DeserializeObject<JokeModel>(responseBody);

エラーが発生しました:

UriFormatException: 無効な URI: ホスト名を解析できませんでした。

どうすればこれを修正できますか?

4

1 に答える 1

0

GetAsyncGET リクエストを実行しますが、おそらくクライアントBaseAddressを構築する初期 Uri として使用したいと考えています。

var builder = new UriBuilder(client.BaseAddress);
builder.Path = "/search";
var query = HttpUtility.ParseQueryString(builder.Query);
query.Add("term", searchedTerm);
query.Add("limit", jokesPerPage);

builder.Query = query.ToString();
string url = builder.ToString();
于 2020-04-27T20:04:43.410 に答える