我正在Xamarin.iOS应用程序中使用Azure移动服务。我的服务期望从客户端发送自定义标头。
为了发送此消息,我创建了自己的消息处理程序,该消息处理程序是从`NativeMessageHandler(ModernHttpClient的一部分)派生而来的:
this.client = new MobileServiceClient (Constants.ApplicationURL, Constants.GatewayURL, new CustomMessageHandler ());
为了将我的标头放到那里,处理程序如下所示:
public class CustomMessageHandler: NativeMessageHandler
{
protected override Task<System.Net.Http.HttpResponseMessage> SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
request.Headers.Add ("customHeader", "headerValue");
return base.SendAsync (request, cancellationToken);
}
}
问题是,当我的服务部署到Azure时,标头似乎未到达服务器。在VisualStudio中本地运行时,它可以工作。如果我在处理程序中放置一个断点,它将被击中;所以标题确实被添加了。
为什么会在本地运行但不能在Azure上运行?
答案是:D'哦!
我为Azure应用程序启用了“身份验证”。因此,我将为每个请求获得401。这和我的经理无关。将其关闭,它就像魅力一样工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句