请举例说明如何在C#中创建JSON请求体。我正在使用Visual Studio 2015.我知道SOAP UI,但我是C#的新手。
提前致谢。
答案 0 :(得分:1)
您可以尝试以下
让我们假设你有以下webmethod
public void Webmethod(string parameter)
{
//Do what ever
}
在C#中,您将执行以下操作来调用webmethod,您需要Json.net,Newtonsoft或其他Json序列化程序
var webRequest = WebRequest.Create("http:\\www.somesite.com/path/to/webservice/webservice.asmx/Webmethod");
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
构建表示参数的Json对象
var jsonobjectrepresentingparameters = new {parameter = "Value"};
使用Newtonsoft JsonConvert获取Json字符串
var datastring = Newtonsoft.Json.JsonConvert.SerializeObject(jsonobjectrepresentingparameters);
获取字节
var bytes = Encoding.ASCII.GetBytes(datastring);
将字节写入请求
var requestStream = webRequest.GetRequestStream();
requestStream.Write(bytes, 0,bytes.Length);
获取回复
var response = webRequest.GetResponse();
如果您的Webmethod返回类似字符串,int或其他数据的内容,您可以使用以下类来反序列化
public class Type<T>
{
public T D { get; set; }
public Type()
{
}
}
当你使用webservices时,你会注意到它返回一个带有属性d的json对象作为值,这就是你在C#中需要上面的类的原因 如果您的返回类型是字符串
,那么您将需要以下额外的两行var json = (new StreamReader(response.GetResponseStream())).ReadToEnd();
var object = JsonConvert.DeserializeObject<Type<string>>(json);