Sourav Das Sourav Das -4 years ago 223
C# Question

Unable to call onesignal api within office but working from external wifi

I am using C# to call OneSignal Create Notifications API. Its working from my home but when i try to send it from my office, it gives a 400 BAD REQUEST.
The error that i get is

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."],

Also, in office network, when i send it from OneSignal Dashboard it works.

Is it a firewall issue?

Tested with POSTMAN and got the same results. POSTMAN working outside office network and giving 400 Bad Request inside office network.

using System.IO;
using System.Net;
using System.Text;

var request = WebRequest.Create("") 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(new StreamReader(ex.Response.GetResponseStream()).ReadToEnd());

Answer Source

The issue is solved by adding the onesignal host to our firewall as a trusted site.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download