私はOneSignal Create Notifications APIを呼び出すためにC#を使用しています。私の家から仕事をしていますが、私のオフィスからそれを送ろうとすると、それは400の悪い要求を出します。私はそれが動作OneSignalダッシュボードからそれを送信するときに私が手 エラーは、オフィスのネットワークでは、またオフィス内で信号信号を呼び出すことができませんでしたが、外部Wi-Fiから作業しています
The error that comes is Please include a case-sensitive header of
Authorization: Basic <YOUR-REST-API-KEY-HERE> with a valid REST API key."],
"reference":["https://documentation.onesignal.com/docs/accounts-and-keys#section-keys-ids"]
です。
ファイアウォールの問題ですか?
POSTMANでテストしたところ、同じ結果が得られました。オフィスネットワークの外部で働くPOSTMANは、オフィスネットワーク内で400 Bad Requestを提供します。
using System.IO;
using System.Net;
using System.Text;
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 NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjxx");
var serializer = new JavaScriptSerializer();
var obj = new { app_id = "5eb5a37e-b458-11e3-ac11-000c2940e6xx",
contents = new { en = "English Message" },
include_player_ids = new string[] {"all"} };
var param = serializer.Serialize(obj);
byte[] byteArray = Encoding.UTF8.GetBytes(param);
string responseContent = null;
try {
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();
}
}
}
catch (WebException ex) {
System.Diagnostics.Debug.WriteLine(ex.Message);
System.Diagnostics.Debug.WriteLine(new StreamReader(ex.Response.GetResponseStream()).ReadToEnd());
}
System.Diagnostics.Debug.WriteLine(responseContent);
あなたの本当の 'app_id'と' authorization'トークンではないことを祈っています...さらに、これは私にファイアウォールの問題であると思われたり、あなたの仕事ネットワークによって何とか変更されています。 – JosephGarrone
@JosephGarrone POSTMANと試行して同じエラーが発生しました。リクエストが変更されたかどうかを確認する方法。 POSTMANコンソールは両方とも同じです –
明らかです:ファイアウォールの問題です。 – TruthSeeker