如何将Json对象序列化为System.Net.WebClient(.NET 3.5)
如何将Json对象序列化为System.Net.WebClient(.NET 3.5)
如何将一个JSON对象序列化并传递到一个API调用中,就像在这里Call web APIs in C# using .NET framework 3.5的答案中所示的那样。\n
System.Net.WebClient client = new System.Net.WebClient(); client.Headers.Add("content-type", "application/json");//在此设置您的头部,您可以添加多个头部 string s = Encoding.ASCII.GetString(client.UploadData("http://localhost:1111/Service.svc/SignIn", "POST", Encoding.Default.GetBytes("{\"EmailId\": \"admin@admin.com\",\"Password\": \"pass#123\"}")));
\n在Postman中,我只需执行以下操作\n
var client = new RestClient(""); var request = new RestRequest(Method.POST); request.JsonSerializer = new RestSharpJsonNetSerializer(); request.AddJsonBody(JsonObject);
\n然而,由于.NET Framework 3.5不支持Postman,我必须使用System.Net.WebClient。
问题的原因是在.NET 3.5中,使用System.Net.WebClient类将Json对象序列化需要找到合适的方法。解决方法是使用Json.NET包将Json对象序列化为字符串,然后使用UploadString方法将其发送到指定的URL。
具体的解决方法如下所示:
var yourObject = new YourObject { Email = "email", Password = "password" }; string s = client.UploadString("http://localhost:1111/Service.svc/SignIn","POST", JsonConvert.SerializeObject(yourObject));
然而,在.NET 3.5中并没有太多可选项,可能确实没有直接的方法来检查状态码。但是,可以参考stackoverflow上的一个问题(https://stackoverflow.com/q/3574659/5311735)来解决这个问题。尽管如果响应代码不成功(不在2xx范围内),它应该会抛出一个异常。
总结起来,问题的解决方法是使用Json.NET包将Json对象序列化为字符串,然后使用System.Net.WebClient类的UploadString方法将其发送到指定的URL。在.NET 3.5中没有直接的方法来检查状态码,但可以参考stackoverflow上的相关问题来处理异常情况。