C# C、 Craft.Net引发JSON.Net异常。未能发射
我开始研制改装的雷管发射器。当我将用户名和密码传递给Craft.Nets Session.DoLogin时,我不断遇到此错误C# C、 Craft.Net引发JSON.Net异常。未能发射,c#,json.net,minecraft,C#,Json.net,Minecraft,我开始研制改装的雷管发射器。当我将用户名和密码传递给Craft.Nets Session.DoLogin时,我不断遇到此错误 private void bLaunch_Click(object sender, EventArgs e) { string sessionID = Session.DoLogin(lblUser.Text, lblPass.Text).SessionId; } Newtonsoft.Json.dll中发生类型为“Newtonsoft.Json.JsonSer
private void bLaunch_Click(object sender, EventArgs e)
{
string sessionID = Session.DoLogin(lblUser.Text, lblPass.Text).SessionId;
}
Newtonsoft.Json.dll中发生类型为“Newtonsoft.Json.JsonSerializationException”的未处理异常
其他信息:ISerializable类型“Craft.Net.Client.Session+MinecraftAuthenticationException”没有有效的构造函数。要正确实现ISerializable,应该存在一个接受SerializationInfo和StreamingContext参数的构造函数。路径,第1行,位置107
到底发生了什么?这与JSON有关吗?还是Craft.Net有问题
Craft.Net 1.7.x分支中的DotMinecraft.cs、PKCSKeyGenerator.cs、RuntimeInfo.cs和Session.cs都包含在该项目中。还包括来自NuGet的Json.Net
引发错误的会话代码:
var serializer = new JsonSerializer();
try
{
var request = (HttpWebRequest)WebRequest.Create("https://authserver.mojang.com/authenticate");
request.ContentType = "application/json";
request.Method = "POST";
var token = Guid.NewGuid().ToString();
var blob = new AuthenticationBlob(username, password, token);
var json = JsonConvert.SerializeObject(blob);
var stream = request.GetRequestStream();
using (var writer = new StreamWriter(stream))
writer.Write(json);
var response = request.GetResponse();
stream = response.GetResponseStream();
var session = serializer.Deserialize<Session>(new JsonTextReader(new StreamReader(stream)));
session.UserName = username;
return session;
}
catch (WebException e)
{
var stream = e.Response.GetResponseStream();
var json = new StreamReader(stream).ReadToEnd();
stream.Close();
throw JsonConvert.DeserializeObject<MinecraftAuthenticationException>(json);
}
我想知道你得到的异常是否掩盖了真正的异常。看起来好像抛出了MinecraftAuthenticationException,但无法序列化。。。DoLogin是否发生在某个服务器上,而您正在将结果序列化回客户端?您可以将该行包装在try/catch中,并记录异常的.ToString,以查看这是否有助于查找根本问题。session.cs具有try/catch视图编辑。如何准确地记录.ToString?我以前没有任何Json或序列化方面的经验。所以很多这对我来说都是新的。当你调试代码时,它最终会被捕获吗?如果是这样,您可以检查json变量的内容以查看其中的内容吗?json{\error\:\BankedenOperationException\,\errorMessage\:\无效凭据。无效用户名或密码。\}字符串。好的,这就是我要找的。无效的用户和密码,谢谢!