Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实现令牌到web api的发送请求?_C#_Api_Xamarin.forms_Token_Azure Ad B2c - Fatal编程技术网

C# 如何实现令牌到web api的发送请求?

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

在我的xamarin.form应用程序中有这两种方法。我已将b2c身份验证添加到我的应用程序中。现在我如何更改这些方法以使用令牌。对不起,如果这是一个非常基本的问题,但我太年轻了。 谢谢

私有静态异步任务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)
        {
            ...
        }
    }