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);