应用程序中心推送在Postman中有效,但在我的C#应用程序中无效
我的C#应用程序中有一个服务,它使用App Center的api推送通知。我所有的请求都返回401s(未经授权),但当我在邮递员上使用相同的详细信息,即内容、标题身份、所有者名称和应用程序名称时,它成功运行并发送应用程序 这是非常令人困惑的,我想知道邮递员是否处理了一些我遗漏的零碎的东西 C#推送通知服务应用程序中心推送在Postman中有效,但在我的C#应用程序中无效,c#,dotnet-httpclient,visual-studio-app-center,C#,Dotnet Httpclient,Visual Studio App Center,我的C#应用程序中有一个服务,它使用App Center的api推送通知。我所有的请求都返回401s(未经授权),但当我在邮递员上使用相同的详细信息,即内容、标题身份、所有者名称和应用程序名称时,它成功运行并发送应用程序 这是非常令人困惑的,我想知道邮递员是否处理了一些我遗漏的零碎的东西 C#推送通知服务 私有异步任务PostHttpRequest(PushNotificationModel PushNotificationModel) { _httpClient.DefaultRequestH
私有异步任务PostHttpRequest(PushNotificationModel PushNotificationModel)
{
_httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“X-API-Token”,_appCenterApiToken);
变量url=”https://api.appcenter.ms/v0.1/apps/myowner/myapp/push/notifications";
var content=JsonConvert.SerializeObject(pushNotificationModel);
var buffer=Encoding.UTF8.GetBytes(内容);
var byteContent=新的ByteArrayContent(缓冲区);
byteContent.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
var response=wait_httpClient.PostAsync(url,字节内容);
返回response.IsSuccessStatusCode;
}
我调试了这段代码,并使用了传递给客户机用于Postman的相同数据,因此,例如,Model
数据就不存在了
非常感谢您的帮助 将下面的代码放入启动表单中
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
我用Telerik Fiddler解决了这个问题。这个有用的工具允许您主动查看进出计算机的HTTP流量。我犯了一个愚蠢的错误,但归根结底是改变了这一点:
\u httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“X-API-Token”,_appCenterApiToken)代码>
致:
\u httpClient.DefaultRequestHeaders.Add(“X-API-Token”,\u appCenterApiToken)代码>
由于第一个在HTTP
标题中实际显示为Authorization:X-API-Token-apiToken
,而不是X-API-Token:apiToken
,它导致请求错误,因此返回401(未授权)
,我将该代码放在上述方法的第一行。它仍然返回一个401
:/
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;