.net 使用flurl向OneSignal api发送通知
我尝试使用onesignal页面中的示例发送一些数据.net 使用flurl向OneSignal api发送通知,.net,core,onesignal,flurl,.net,Core,Onesignal,Flurl,我尝试使用onesignal页面中的示例发送一些数据 var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest; request.KeepAlive = true; request.Method = "POST"; request.ContentType = "application/json; charset=utf-8"; request.Headers.
var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest;
request.KeepAlive = true;
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.Headers.Add("authorization", "Basic xxx");
var obj = new
{
app_id = "xxx",
contents = new { en = "English Message" },
included_segments = new string[] { "Active Users" }
};
var param = JsonConvert.SerializeObject(obj);
byte[] byteArray = Encoding.UTF8.GetBytes(param);
使用此代码可以很好地工作,但我使用Flurl向onesignal发出这样的请求
var body = new
{
app_id = "xxx",
contents = new
{
es = "Mensaje prueba"
},
included_segments = new string[] { "All" }
};
string param = JsonConvert.SerializeObject(body);
var content = new System.Net.Http.ByteArrayContent(Encoding.UTF8.GetBytes(param));
var response = await new Flurl.Url(urlbase)
.AppendPathSegment("notifications")
.WithHeader("Content-Type", "application/json; charset=utf-8")
.WithHeader("Authorization", "Basic xxx")
.PostAsync(content)
.ReceiveString();
但我收到了一个“糟糕的要求”。请有人帮忙指出如何使用Flurl拨打相同的电话?如第一条评论中所述,您所做的工作超出了您的需要。Flurl将为您序列化
body
,因此请删除以下行:
string param = JsonConvert.SerializeObject(body);
var content = new System.Net.Http.ByteArrayContent(Encoding.UTF8.GetBytes(param));
并使用PostJsonAsync
直接发布body
:
var response = await urlbase
...
.PostJsonAsync(body)
.ReceiveString();
只需使用PostJsonAsync(body)
而不是PostAsync
,不要序列化body本身。让Flurl按自己的方式做吧。