C# 机器视觉工控通讯------HTTP上位机通讯

C# 机器视觉工控通讯------HTTP上位机通讯

前言

HTTP介绍
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应
HTTP会话
HTTP会话是一系列网络请求-响应事务。HTTP客户端通过建立到服务器上特定端口的传输控制协议(TCP)连接(通常是端口80,偶尔是端口8080)来发起请求。监听该端口的HTTP服务器正在等待客户端的请求消息。收到请求后,服务器将发回状态行(例如“ HTTP / 1.1 200 OK”)和其自身的消息。虽然也可能会返回错误消息或其他信息,该消息的主体主要是请求的资源。

HTTP会话状态:HTTP是一种无状态协议。无状态协议不要求HTTP服务器在多个请求的持续时间内保留有关每个用户的信息或状态。但是,某些Web应用程序使用HTTP cookie或Web表单内的隐藏变量来实现状态或服务器端会话。-

二、使用步骤

1.引入库

代码如下(示例):

using System.Net;

## 2.不带参数的POST请求

代码如下(示例):

```csharp
   public static string Post(string url)
        {
            string result = "";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            //获取内容  
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }

##3 带参数的POST请求

  public static string Post1(string url, Dictionary<string, string> dic)
        {
   
            string result = "";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            #region 添加Post 参数  
            StringBuilder builder = new StringBuilder();
            int i = 0;
            foreach (var item in dic)
            {
   
                if (i > 0)
                    builder.Append("&");
                builder.AppendFormat("{0}={1}", item.Key, item.Value);
                i++;
            }
            byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
            req.ContentLength = data.Length;
            using (Stream reqStream = req.GetRequestStream())
 

你可能感兴趣的:(http,c#,服务器,人工智能)