Winform调用WebApi接口实现上传和接收JSON数据

话不多说,直接上代码:

post上传JSON数据

                       string url = 接口地址+"setscdl";
                        Result ysdUpLoadResult = new Result();
                        WebRequest request = WebRequest.Create(url);
                        request.Method = "post";
                       string data =  Newtonsoft.Json.JsonConvert.SerializeObject(productionQueue);
                        //格式化JSON数据
                        try
                        {
                            JsonSerializer serializer = new JsonSerializer();
                            TextReader tr = new StringReader(data);
                            JsonTextReader jtr = new JsonTextReader(tr);
                            object obj = serializer.Deserialize(jtr);
                            if (obj != null)
                            {
                                StringWriter textWriter = new StringWriter();
                                JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
                                {
                                    Formatting = Formatting.Indented,
                                    Indentation = 4,//缩进字符数
                                    IndentChar = ' '//缩进字符
                                };
                                serializer.Serialize(jsonWriter, obj);
                                data = textWriter.ToString();
                            }

                        }
                        catch (Exception ex)
                        {
                            l.datelog("错误的JSON");

                        }

                        byte[] byteData = Encoding.UTF8.GetBytes(data);
                        request.ContentLength = byteData.Length;
                        request.ContentType = "application/json";

                        using (Stream postStream = request.GetRequestStream())
                        {
                            postStream.Write(byteData, 0, byteData.Length);
                        }

                        WebResponse response;
                        try
                        {
                            response = request.GetResponse();
                        }
                        catch (WebException ex)
                        {
                            response = ex.Response;
                        }
                        StreamReader reader = new StreamReader(response.GetResponseStream());
                        string result = reader.ReadToEnd();
                        ysdUpLoadResult = JsonConvert.DeserializeObject<Result>(result);

                        if (ysdUpLoadResult.code == "正常")
                        {
                            l.datelog("成功!");
                        }
                        else
                        {
                            l.datelog("失败");
                        }

get获取JSON数据

 string ysdToken = "";
            JsonMess jsonMess  = new JsonMess();
            HttpWebRequest req = 
    (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            try
            {
                //获取内容
                using (StreamReader reader = new StreamReader(stream))
                {
                    Ingredients ingredients = new Ingredients();
                  ysdToken = reader.ReadToEnd();
                  jsonMess = JsonConvert.DeserializeObject<JsonMess>(ysdToken);
                 }
              }

希望对大家有帮助!

### 回答1: Winform 是一种常见的 Windows 桌面应用程序开发平台,而 WebAPI 是一种基于 HTTP 的 Web 服务框架,两者可以很好地结合,实现桌面应用程序向 Web 服务发送请求获取数据的功能。 在 Winform调用 WebAPI 可以使用 .NET 的 HttpWebRequest 或 HttpClient 类,封装 HTTP 请求并发送给 Web 服务。在发送请求之前,需要先确定 WebAPI 的 URL 地址,以及请求所要传递的参数。可以使用 HttpClient 的 PostAsync 或 GetAsync 方法发送请求,接收 Web 服务返回的数据并处理。在接收WebAPI 的响应后,可以使用 JSON 序列化工具将数据反序列化为 .NET 对象,方便在 Winform 窗体中进行显示或进一步处理。 为了让 Winform 程序与 WebAPI 通信更加简便和高效,可以使用第三方的 RESTful API 框架,如 RestSharp 或 ServiceStack。这些框架可以帮助 Winform 应用程序快速、方便地与 WebAPI 进行通信,简化了操作流程,在 Winform 程序中使用起来更加便捷。 总之,Winform 调用 WebAPI 是一种常见且实用的开发方式,可以帮助开发人员快速获取 Web 服务数据或执行业务操作,提高应用程序的功能和效率。 ### 回答2: Winform 调用 Web API 是一个常见的操作,可以通过以下步骤实现。 首先,在 Winform 中添加 Web 请求的相关代码。通过 HttpClient 类,我们可以轻松地向 Web API 发送 HTTP 请求。下面是一个示例代码,用于在 Winform调用 Web API 中的一个方法: ``` HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:5000/"); HttpResponseMessage response = await client.GetAsync("api/values"); if (response.IsSuccessStatusCode) { string result = await response.Content.ReadAsStringAsync(); textBox1.Text = result; } else { textBox1.Text = "Error"; } ``` 在以上代码中,我们首先创建了一个 HttpClient 实例,并指定其 BaseAddress 属性为 Web API 的地址。然后,我们使用 GetAsync 方法向 Web API 发送请求,并等待响应。如果请求成功,我们将响应内容读取为字符串,并在 Winform 的文本框中显示。 在实际的开发中,我们还需要根据具体的需求和 Web API 的设计,设置请求头、请求参数等相关信息。 总的来说,Winform 调用 Web API 是一种方便、快捷、灵活的方法,可以有效地实现前后端分离,提高应用程序的易用性和可扩展性。 ### 回答3: Winform是一种桌面应用程序,它提供了丰富的用户界面和交互功能。WebAPI则是一种基于HTTP协议的状态无关的服务,它可以用来向任何客户端(包括Winform应用程序)提供数据或者执行某些操作。 要在Winform调用WebAPI,需要使用HttpClient类来发送请求和接收响应。首先需要创建一个HttpClient实例,通过它可以发起各种类型的HTTP请求(如GET、POST、PUT、DELETE等)。同时还可以为每个请求设置必要的header和query参数,以及接收响应的格式(如JSON或XML)。 对于需要进行身份验证或者授权的请求,可以使用HttpClient的Credential属性来指定相应的用户名和密码。此外,还可以使用HttpClient的Timeout属性来设置超时时间,以避免请求过程中出现等待超时的问题。 在收到WebAPI的响应后,还需要对其进行解析和处理。HttpContent类提供了许多方法来获取返回的数据(如字符流、字节数组或者字符串)和解析JSON或XML格式的数据。可以将这些数据转换为相应的格式,然后在Winform应用程序中进行显示或其他操作。 总之,在Winform调用WebAPI需要使用HttpClient类发起请求和接收响应,并使用HttpContent类对返回的数据进行解析和处理。这样可以实现Winform应用程序与WebAPI的通信,从而获取所需的数据或执行某些操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值