我有一个WebAPI,它可以按以下方式发送BASIC授权信息。
var client = new HttlpClient();
client.BaseAddress = new Uri(GlobalConstants.LdapUri);
var contentType = new MediaTypeWithQualityHeaderValue("application/json");
client.DefaultRequestHeaders.Accept.Add(contentType);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));
Task<HttpResponseMessage> results = client.GetAsync(GlobalConstants.FortressAPIUriDev);
var response = await results;
我已经使用MVC Core 1.x构建了该API,而接收API是使用MVC5构建的。
问题在于此GetAsync同时发送两个请求,我不知道如何解决此问题。我自己做了一些谷歌搜索,看看是否可以找到解决办法,但是到目前为止还没有运气。有没有人遇到这个问题并知道如何解决?
非常感谢您。
答案 0 :(得分:0)
长话短说,找到了以下解决方案:
using (var client = new HttpClient())
{
var requestMessage = new HttpRequestMessage(HttpMethod.Get, GlobalConstants.LdapUri + GlobalConstants.FortressAPIUriDev);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));
var response = await client.SendAsync(requestMessage);
}
替换此代码后,它一次发送一个请求。 在以下位置找到了提示: Adding headers when using httpClient.GetAsync