相关疑难解决方法(0)

设置HttpClient的授权标头

我有一个HttpClient,我用它来使用REST API.但是,我在设置Authorization标头时遇到问题.我需要将标头设置为我从执行OAuth请求时收到的令牌.我看到.NET的一些代码表明以下内容,

httpClient.DefaultRequestHeaders.Authorization = new Credential(OAuth.token);
Run Code Online (Sandbox Code Playgroud)

但是,Credential类在WinRT中不存在.任何人有任何想法如何设置授权标头?

c# rest oauth windows-runtime

418
推荐指数
16
解决办法
52万
查看次数

使用httpClient.GetAsync时添加标头

我在Windows商店应用程序项目中实现了其他同事与Apiary.io的api.

他们展示了我必须实现的方法的这个例子

var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/");

using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
    using (var response = await httpClient.GetAsync("user/list{?organizationId}"))
    {
        string responseData = await response.Content.ReadAsStringAsync();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个和其他一些方法中,我需要一个带有我之前获得的标记的标题

下面是一个邮递员(镀铬扩展)的图像,标题我正在谈论 在此输入图像描述

如何将该授权标头添加到请求中?

c# windows-runtime dotnet-httpclient windows-store-apps apiary.io

117
推荐指数
6
解决办法
16万
查看次数

如何使用HTTPclient内容类型= application/x-www-form-urlencoded进行POST

我正在开发一个wp8.1应用程序C#,我已经设法通过从textbox.texts创建一个json对象(bm)来在json中执行一个POST方法到我的api.这是我的代码如下.我如何使用相同的textbox.text并将它们作为内容类型= application/x-www-form-urlencoded进行POST.那是什么代码?

            Profile bm = new Profile();
            bm.first_name = Names.Text;
            bm.surname = surname.Text;

            string json = JsonConvert.SerializeObject(bm);

            MessageDialog messageDialog = new MessageDialog(json);//Text should not be empty 
            await messageDialog.ShowAsync();

            HttpClient client = new HttpClient();
            client.DefaultRequestHeaders.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");

            byte[] messageBytes = Encoding.UTF8.GetBytes(json);
            var content = new ByteArrayContent(messageBytes);
            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            var response = client.PostAsync("myapiurl", content).Result;
Run Code Online (Sandbox Code Playgroud)

c# windows-phone-8.1

72
推荐指数
3
解决办法
7万
查看次数

向标头添加授权

我有以下代码:

...
AuthenticationHeaderValue authHeaders = new AuthenticationHeaderValue("OAuth2", Contract.AccessToken);
string result = await PostRequest.AuthenticatedGetData(fullUrl, null, authHeaders);
return result; 
...

public static async Task<string> AuthenticatedGetData(string url, FormUrlEncodedContent data, AuthenticationHeaderValue authValue)
{

    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authValue.Parameter);

    HttpResponseMessage response = await client.PostAsync(new Uri(url), data);

    response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    response.EnsureSuccessStatusCode();
    string responseBody = await response.Content.ReadAsStringAsync();
    return responseBody;
}
Run Code Online (Sandbox Code Playgroud)

响应=等待部分只是继续循环,没有任何反应.我有什么想法我做错了吗?

问题是,我如何发送以下标题:

Authorization: OAuth2 ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)

到外部网络api

c# async-await dotnet-httpclient windows-phone-8

22
推荐指数
3
解决办法
7万
查看次数