C# 如何实现令牌到web api的发送请求?
在我的xamarin.form应用程序中有这两种方法。我已将b2c身份验证添加到我的应用程序中。现在我如何更改这些方法以使用令牌。对不起,如果这是一个非常基本的问题,但我太年轻了。 谢谢C# 如何实现令牌到web api的发送请求?,c#,api,xamarin.forms,token,azure-ad-b2c,C#,Api,Xamarin.forms,Token,Azure Ad B2c,在我的xamarin.form应用程序中有这两种方法。我已将b2c身份验证添加到我的应用程序中。现在我如何更改这些方法以使用令牌。对不起,如果这是一个非常基本的问题,但我太年轻了。 谢谢 私有静态异步任务SendGetRequest(字符串url) { var httpClient=新的httpClient(); string responseString=string.Empty; var response=wait-httpClient.GetAsync(url); if(响应。IsSucc
私有静态异步任务SendGetRequest(字符串url)
{
var httpClient=新的httpClient();
string responseString=string.Empty;
var response=wait-httpClient.GetAsync(url);
if(响应。IsSuccessStatusCode)
{
responseString=wait response.Content.ReadAsStringAsync();
}
其他的
{
...
}
回报率;
}
私有静态异步任务SendPostRequest(字符串url、对象负载)
{
尝试
{
var httpClient=新的httpClient();
var stringContent=newstringcontent(JsonConvert.SerializeObject(payLoad),Encoding.UTF8,“application/json”);
var response=await-httpClient.PostAsync(url,stringContent).ConfigureAwait(false);
如果(!response.issucessStatusCode)
{
...
}
}
捕获(无效操作异常ex)
{
...
}
捕获(例外情况除外)
{
...
}
}
使用授权标头进行身份验证:
private static async Task<string> SendGetRequest(string url)
{
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationType, accessToken);
string responseString = string.Empty;
var response = await httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
responseString = await response.Content.ReadAsStringAsync();
}
else
{
...
}
return responseString;
}
private static async Task SendPostRequest(string url, object payLoad)
{
try
{
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationType, accessToken);
var stringContent = new StringContent(JsonConvert.SerializeObject(payLoad), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(url, stringContent).ConfigureAwait(false);
if (!response.IsSuccessStatusCode)
{
...
}
}
catch (InvalidOperationException ex)
{
...
}
catch (Exception ex)
{
...
}
}
私有静态异步任务SendGetRequest(字符串url)
{
var httpClient=新的httpClient();
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(authorizationType,accessToken);
string responseString=string.Empty;
var response=wait-httpClient.GetAsync(url);
if(响应。IsSuccessStatusCode)
{
responseString=wait response.Content.ReadAsStringAsync();
}
其他的
{
...
}
回报率;
}
私有静态异步任务SendPostRequest(字符串url、对象负载)
{
尝试
{
var httpClient=新的httpClient();
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(authorizationType,accessToken);
var stringContent=newstringcontent(JsonConvert.SerializeObject(payLoad),Encoding.UTF8,“application/json”);
var response=await-httpClient.PostAsync(url,stringContent).ConfigureAwait(false);
如果(!response.issucessStatusCode)
{
...
}
}
捕获(无效操作异常ex)
{
...
}
捕获(例外情况除外)
{
...
}
}
这里的authorizationType类似于“基本”或“承载者”,accessToken是您的令牌。这是否回答了您的问题?
private static async Task<string> SendGetRequest(string url)
{
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationType, accessToken);
string responseString = string.Empty;
var response = await httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
responseString = await response.Content.ReadAsStringAsync();
}
else
{
...
}
return responseString;
}
private static async Task SendPostRequest(string url, object payLoad)
{
try
{
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationType, accessToken);
var stringContent = new StringContent(JsonConvert.SerializeObject(payLoad), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(url, stringContent).ConfigureAwait(false);
if (!response.IsSuccessStatusCode)
{
...
}
}
catch (InvalidOperationException ex)
{
...
}
catch (Exception ex)
{
...
}
}