如何将自己的标头添加到Azure移动服务调用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将自己的标头添加到Azure移动服务调用?相关的知识,希望对你有一定的参考价值。

我有Azure Mobile Service API,我想从Windows Phone应用程序调用它。

所以我使用类似的东西:

public static async Task<bool> InvokeGetUsers()
        {
            Dictionary<string, string> headers = new Dictionary<string, string>();
            headers.Add("X-USER-TOKEN", App.userInfo.token);
            headers.Add("X-ZUMO-APPLICATION", "nxdQEvWOERLaHocwMz");

            Dictionary<string, string> arguments = new Dictionary<string, string>();
            arguments.Add("uuid", "123456");

            if (App.mobileServiceClient != null)
            {
                App.userFriends = await App.mobileServiceClient.InvokeApiAsync<List<GetUsers>>("get_users", System.Net.Http.HttpMethod.Post, arguments);
                return true;
            }
            return false;
        }

我不能做的是将标题信息传递给我的电话,怎么做?

答案

您可以使用InvokeApiAsync方法的重载版本:

public Task<HttpResponseMessage> InvokeApiAsync(
    string apiName,
    HttpContent content,
    HttpMethod method,
    IDictionary<string, string> requestHeaders,
    IDictionary<string, string> parameters
)

更多信息:https://msdn.microsoft.com/en-us/library/dn268343.aspx

另一答案

理想情况下,您希望通过MobileServiceClient为API的所有调用添加标头。为此,您需要实现一个Http Message Handler并将其传递给MobileServiceClient的构造函数,例如:

App.mobileServiceClient = new MobileServiceClient(apiURI, new MyHandler());

以下是Handler的实现:

public class MyHandler : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        request.Headers.Add("x-api-key", "1234567");
        var response = await base.SendAsync(request, cancellationToken);
        return response;
    }
}

以上是关于如何将自己的标头添加到Azure移动服务调用?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure 服务结构的默认客户端时如何将消息头添加到请求中?

将安全标头信息添加到从 WSDL 生成的 Java 代码

如何将 HTTP 标头添加到 SOAP 客户端

如何从 Azure 移动应用服务调用 HTTP(Azure Functions)?

将 Cache-Control 和 Expires 标头添加到 Azure 存储 Blob

Azure 移动服务(推送通知)