我如何在一个信号中包含字符串列表或字符串数​​组rest api“ include_player_ids”参数

时间:2019-04-24 09:49:27

标签: c# arrays onesignal

我正在使用一种信号推送通知其余api系统,但是在理解参数的工作方式时遇到了麻烦。我将提供一个示例,但仅提供硬编码数据。一个信号支持团队无非是支持。我已经有一个字符串List'listIds'和一个string []'arrayIds',并且我想在“ include_player_ids”参数中包含一个或另一个。

这是一个信号的示例代码

byte[] byteArray = Encoding.UTF8.GetBytes("{"
                                    + "\"app_id\": \"5eb5a37e-b458-11e3-ac11-000c2940e62c\","
                                    + "\"contents\": {\"en\": \"English Message\"},"
                                    + "\"include_player_ids\": [\"6392d91a-b206-4b7b-a620-cd68e32c3a76\",\"76ece62b-bcfe-468c-8a78-839aeaa8c5fa\",\"8e0f21fa-9a5a-4ae7-a9a6-ca1f24294b86\"]}");

我尝试用以下各行替换最后一行,但没有任何效果。我不明白byte []和这些反冲是如何工作的。

+ "\"include_player_ids\": " + guestDevicesList + "}");
+ "\"include_player_ids\": " + arrayIds + "}");

提供硬编码的值,代码即可工作。在用字符串列表或字符串[]替换硬编码值时,我需要一些帮助。

2 个答案:

答案 0 :(得分:1)

我本来以为是JSON格式,但显然不是。

eth1

答案 1 :(得分:0)

您是否因为使用System.Net.WebClient()而使用byteArray?

我建议改用HttpClient。您可以改为使用字符串上传。

如果您确实需要字节数组,请尝试使用Encoding.ASCII.GetBytes()而不是ASCII characters而不是UTF8