Я хочу отправить уведомление с OneSignal API в asp и IIS. Но он вернул «HttpWebRequest возвращает (400) неверный запрос». Все параметры данных верны; Я думаю, что проблема связана с брандмауэром IIS или чем-то вроде allow_url_fopen в PHP. Вот мой код:
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 " + REST_API_KEY);
var serializer = new JavaScriptSerializer();
var obj = new
{
app_id = APP_ID,
contents = new { en = ApplicantUser.UserName + " challenged you!" },
include_player_ids = new string[] { UserNotificationId },
data = new Dictionary<string, string>() { { "ApplicantId", ApplicantUser.ID.ToString() },
{ "ChallengeApplicant", ApplicantUser.UserName },
{ "ChallengeAmount", ChallengeAmount },
{ "ApplicantLevel", ApplicantUser.Level.ToString() } }
};
var param = serializer.Serialize(obj);
byte[] byteArray = Encoding.UTF8.GetBytes(param);
string responseContent = null;
using (var writer = request.GetRequestStream())
{
writer.Write(byteArray, 0, byteArray.Length);
}
using (var response = request.GetResponse() as HttpWebResponse)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
responseContent = reader.ReadToEnd();
}
}