WebResponse问题未经授权的错误401

问题描述

我的客户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 (将#修改为@)