два года назад, в веб -приложении .NET 8 MVC, я использовал Httpclient, чтобы сделать HTTP -запросы в API, например, так: < /p>
Код: Выделить всё
HttpClientHandler httpClientHandler = new HttpClientHandler()
{
Credentials = new NetworkCredential(configuration[Id], configuration[Pwd])
};
using var client = new HttpClient(httpClientHandler);
client.DefaultRequestHeaders.Add("Accept", "application/xml");
var result = client.GetAsync($"{configuration[Host]}/api/example").Result;
Код: Выделить всё
"API": {
"Debug": {
"Host": "...",
"Id": "...",
"Pwd": "..."
},
"Production": {
"Host": "...",
"PartnerId": "...",
"Pwd": "..."
}
}
< /code>
где «отладка» и «производство»-это два профиля, а фактический профиль основан на зарегистрированном пользователе, и поэтому он определяется во время выполнения. < /p>
< P> в течение двух лет вышеуказанный код работал нормально как локально, так и на производственном сервере до вчерашнего дня, когда все запросы начали сработать как на машине разработки, так и на производственном сервере. После многих часов отладки (и проклятия и употребления скотча) я решил заменить httpclient
Fwiw, вот ответ API: < /p>
Код: Выделить всё
Forbidden resource
< /code>
Конечно, сначала я подозревал, что что -то изменилось на стороне API. Тем не менее, отправка те же запросы от почтальона работала нормально. Машина и производственный сервер), что IMHO означает, что проблема имеет мало отношения со всеми возмутительными проблемами httpclient
Ох, и если у кого -то есть инструкции о том, как настроить статический httpclient < /code> с динамическими параметрами (учетные данные и т. Д.), Как описано выше, которые не требуют двух степеней PhD и Three MSC, чтобы следовать , пожалуйста, помогите себе.
Подробнее здесь: https://stackoverflow.com/questions/794 ... httpclient