来自Asp.Net的其余API调用C#
问题描述:
我正在创建调用第三方Rest API的ASP.NET。第三方API只能访问用户名和密码。还使用HTTP基本验证来自Asp.Net的其余API调用C#
public string Get(string LabName)
{
string userName = ConfigurationManager.AppSettings["username"];
string password = ConfigurationManager.AppSettings["password"];
string BaseURL = ConfigurationManager.AppSettings["BaseURL"];
using (var client = new HttpClient())
{
Uri uri = new Uri(BaseURL);
client.BaseAddress = uri;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
string clarity_URL = BaseURL+"api/v2/labs?name="+LabName;
var response = client.GetAsync(clarity_URL).Result;
string responseString = response.Content.ReadAsStringAsync().Result;
return responseString;
我应该使用HttpClient
或HttpWebRequest
。我不知道如何通过用户名和密码,同时呼吁在ASP.NET.Can人的REST API建议我如何安全地调用该API
答
var byteArray = Encoding.ASCII.GetBytes("username:password1234");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
由于我有字符串username试图给出'变种的ByteArray = Encoding.ASCII.GetBytes(用户名:密码);'它引发错误等错误'1 \t \t最好重载 'GetBytes会' 不有一个名为'userName'的参数\t ' – user4912134
您应该像'Encoding.ASCII.GetBytes(username +“:”+ password);' –
@ user4912134如果您认为此答案是正确的解决方案,请将其标记为已回答。 :) –