当前位置: 首页 > 知识库问答 >
问题:

. NET Core 2.0:只允许使用超文本传输协议和https方案

相云
2023-03-14

我有一个使用ASP构建的Web API。NET核心2.0。我正在尝试呼叫Firebase Cloud Messaging HTTP v1,向移动客户端发送推送通知。根据文档,您需要调用此endpoint:

发布https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:发送

当我尝试(用我的令牌)打这个电话时,我收到一条错误消息,说只允许http和https:

只允许使用“http”和“https”方案。参数名称:requestUri

这个错误消息让我觉得HttpClient有一个问题:Uri的发送部分。以下是我为此编写的代码:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://fcm.googleapis.com/v1/projects/my-project-id/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new 
System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var jsonMessage = JsonConvert.SerializeObject(message);
var stringConent = new StringContent(jsonMessage, System.Text.Encoding.UTF8, "application/json");
var fcmCall = await client.PostAsync("messages:send", stringConent);

我能试着解决这个问题吗?非常感谢。

链接到FCM:https://firebase.google.com/docs/cloud-messaging/send-message

共有1个答案

龙令雪
2023-03-14

您应该在请求URI中对冒号()进行编码。您可以使用WebUtility类:

System.Net.WebUtility.UrlEncode("messages:send")
 类似资料:
  • 我正在使用oauth签名生成我的oauth签名,以便与woocommerce api连接。我遵循了woocommerce rest api文档中所述的所有步骤: 所需的参数是:oauth_consumer_密钥、oauth_时间戳、oauth_nonce、oauth_签名和oauth_签名方法。oauth_版本不是必需的,应该省略。OAuth nonce可以是消费者密钥唯一的任意随机生成的32个字

  • 我尝试使用以下方法从Api获取json数据 我将这个物体建模如下 数据如下: 当我尝试使用模型访问时,我收到错误“\u InternalLinkedHashMap”

  • 我已经安装了Apache 2.2负载平衡器和Weblogic 12c服务器。 我观察到一个https URL试图在我的应用程序中打开一个http URL,但没有成功,正如预期的那样。我搜索了一下为什么这会导致问题,并注意到了一些问题- http://geekexplains.blogspot.in/2008/06/https-becoming-http-in-case-of.html 当我试图寻找

  • 我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始

  • 我试图禁用我的AngularJS应用程序中的缓存,但它无法使用以下代码: 当我使用

  • 在owncloud相关网站和stackoverflow自身的以下链接中,所有相关信息都以不完整的形式呈现: 用户配置Api-Owncloud 我试着做一些非常简单的事情: > 我得到这样的输出: 开始处理凭据,首先它将存储在本地变量中 Hello Frank 您的密码是frankspassword failure 997未经授权 在owncloud中创建了一个新用户 我还尝试使用以下php脚本登录