问题描述
我的客户HomeController
中有以下代码:
public void SendNotification(object data)
{
try
{
ServicePointManager.DefaultConnectionLimit = 10;
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
System.Diagnostics.Debug.WriteLine(serializer);
var json = serializer.Serialize(data);
System.Diagnostics.Debug.WriteLine(json);
Byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(json);
System.Diagnostics.Debug.WriteLine(byteArray);
string SERVER_API_KEY = "AIzaSyAJpxPFwMADcn-caElcmtron1UVib8huiM";
string SENDER_ID = "1080691595853";
System.Diagnostics.Debug.WriteLine(SERVER_API_KEY);
WebRequest tRequest;
tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
System.Diagnostics.Debug.WriteLine(tRequest);
tRequest.Method = "post";
tRequest.ContentLength = 0;
System.Diagnostics.Debug.WriteLine(tRequest.Method);
tRequest.ContentType = "application/json";
System.Diagnostics.Debug.WriteLine(tRequest.ContentType);
tRequest.Headers.Add(string.Format("Authorization: key={0}",SERVER_API_KEY));
tRequest.Headers.Add(string.Format("Sender: id={0}",SENDER_ID));
System.Diagnostics.Debug.WriteLine(tRequest.Headers);
tRequest.ContentLength = byteArray.Length;
System.Diagnostics.Debug.WriteLine(tRequest.ContentLength);
Stream dataStream = tRequest.GetRequestStream();
System.Diagnostics.Debug.WriteLine(dataStream);
dataStream.Write(byteArray,byteArray.Length);
System.Diagnostics.Debug.WriteLine(dataStream);
dataStream.Close();
//HttpWebResponse tResponse = (HttpWebResponse)tRequest.GetResponse();
WebResponse tResponse = tRequest.GetResponse();
System.Diagnostics.Debug.WriteLine(tResponse);
dataStream = tResponse.GetResponseStream();
System.Diagnostics.Debug.WriteLine(dataStream);
StreamReader tReader = new StreamReader(dataStream);
System.Diagnostics.Debug.WriteLine(tReader);
String sResponseFromServer = tReader.ReadToEnd();
System.Diagnostics.Debug.WriteLine(sResponseFromServer);
tReader.Close();
dataStream.Close();
tResponse.Close();
}
catch (WebException ex)
{
var resp = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
System.Diagnostics.Debug.WriteLine(resp);
throw;
}
catch (Exception)
{
throw;
}
}
在此行之后转到错误:
WebResponse tResponse = tRequest.GetResponse();
,它返回未经授权的错误401
有什么主意吗? 其目的是使用FCM发送通知,我已经生成了令牌并正确设置了数据对象(在邮递员处检查)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)