应用程序中心推送在Postman中有效,但在我的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

我的C#应用程序中有一个服务,它使用App Center的api推送通知。我所有的请求都返回401s(未经授权),但当我在邮递员上使用相同的详细信息,即内容、标题身份、所有者名称和应用程序名称时,它成功运行并发送应用程序

这是非常令人困惑的,我想知道邮递员是否处理了一些我遗漏的零碎的东西

C#推送通知服务
私有异步任务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;