【问题标题】:Minecraft authentication servers returning 403 forbiddenMinecraft 身份验证服务器返回 403 被禁止
【发布时间】:2021-11-10 11:45:01
【问题描述】:

所以,我试图通过 C# 向 minecraft 身份验证服务器 (https://authserver.mojang.com/authenticate) 发送 POST 请求来创建新的 authToken,但我收到以下错误:

System.Net.WebException: 'The remote server returned an error: (403) Forbidden.'

我当前尝试发送请求的代码是:

                public void ObtainAccessToken(string username, string password)
    {
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://authserver.mojang.com/authenticate");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = "{\"agent\":{\"name\":\"Minecraft\",\"version\":1},\"username\":\"" + username + "\",\"password\":\"" + password + "\"}";

            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                
            }
        }
    }

来自:https://stackoverflow.com/a/28591279/17371073

我正在尝试登录已迁移的帐户

【问题讨论】:

  • 自提到帖子以来,登录方式已更改 2 次​​span>
  • 好的,那我该怎么做
  • 我做了 wdym,代码应该可以与 wiki 上的内容一起使用

标签: c# post minecraft


【解决方案1】:

使用我几年前的 Java 实现作为参考,我看到的唯一区别是我在请求标头中添加了 Content-Charset UTF-8Content-Length 以及写入的有效负载字节大小(即,您编写的 json 字符串的字节大小)。如果没有必要,我怀疑我永远不会这样做。

编辑:在HTTP specification 之后,您的请求仅在以下情况下才有效:

  • 在您的 HTTP 标头中包含 Content-Length 属性。
  • 发送 HTTP 请求后直接关闭连接。

由于您正在等待回复,因此您必须使用第一个选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2019-05-12
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多