POST 使用 C# 的 Web 服务客户端
POST Web Service Client using C#
能否给我一个示例,说明如何在 C# 中制作 JSON 请求正文。我正在使用 Visual Studio 2015。我知道 SOAP UI,但我是 C# 的新手。
提前致谢。
您可以尝试以下方法
假设您有以下网络方法
public void Webmethod(string parameter)
{
//Do what ever
}
在 C# 中,您将执行以下操作来调用网络方法,您需要 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 return 编辑了字符串、整数或其他数据,您可以使用以下 class 反序列化
public class Type<T>
{
public T D { get; set; }
public Type()
{
}
}
当你使用 web 服务时,你会注意到它 returns 一个 json 对象,属性 d 作为值,这就是你在 C# 中需要上述 class 的原因
如果您的 return 类型是 string
,那么您将需要以下额外的两行
var json = (new StreamReader(response.GetResponseStream())).ReadToEnd();
var object = JsonConvert.DeserializeObject<Type<string>>(json);
能否给我一个示例,说明如何在 C# 中制作 JSON 请求正文。我正在使用 Visual Studio 2015。我知道 SOAP UI,但我是 C# 的新手。
提前致谢。
您可以尝试以下方法
假设您有以下网络方法
public void Webmethod(string parameter)
{
//Do what ever
}
在 C# 中,您将执行以下操作来调用网络方法,您需要 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 return 编辑了字符串、整数或其他数据,您可以使用以下 class 反序列化
public class Type<T>
{
public T D { get; set; }
public Type()
{
}
}
当你使用 web 服务时,你会注意到它 returns 一个 json 对象,属性 d 作为值,这就是你在 C# 中需要上述 class 的原因 如果您的 return 类型是 string
,那么您将需要以下额外的两行var json = (new StreamReader(response.GetResponseStream())).ReadToEnd();
var object = JsonConvert.DeserializeObject<Type<string>>(json);