如何将自己的 header 添加到 Azure 移动服务调用?
How to add own header to Azure Mobile Services call?
我有 Azure 移动服务 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;
}
我不能做的是将 header 信息传递给我的电话,该怎么做?
您可以使用 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 添加一个 header 到 all 对您的 API 的调用。为此,您需要实现 Http 消息处理程序 并将其传递给 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 移动服务 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;
}
我不能做的是将 header 信息传递给我的电话,该怎么做?
您可以使用 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 添加一个 header 到 all 对您的 API 的调用。为此,您需要实现 Http 消息处理程序 并将其传递给 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;
}
}