如何将Json对象序列化为System.Net.WebClient(.NET 3.5)

17 浏览
0 Comments

如何将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。

0
0 Comments

问题的原因是在.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上的相关问题来处理异常情况。

0