c# 调用post 请求

 public  string HttpPost()
        {

            HttpWebRequest webrequest =
                (HttpWebRequest)HttpWebRequest.Create("接口地址");
            webrequest.Method = "POST";

            webrequest.ContentType = "application/x-www-form-urlencoded"; //无关的请求头在本文中都省略掉了

            webrequest.Headers.Add("Access-Token", "Sinopec-Station");

            string postData = “json串” ;

            byte[] postdatabyte = Encoding.UTF8.GetBytes(postData);
            webrequest.ContentLength = postdatabyte.Length;
            Stream stream = webrequest.GetRequestStream();
            stream.Write(postdatabyte, 0, postdatabyte.Length);
            stream.Close();

            HttpWebResponse response = (HttpWebResponse)webrequest.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            //StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            //StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312")); 
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
        }
        
        ////post方法调用接口获取json文件内容
        public string PostFunction()
        {
            string serviceAddress = ""接口地址"";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
            request.Headers.Add("Access-Token", "Sinopec-Station");
            request.Method = "POST";
            request.ContentType = "application/json";
            //request.CookieContainer = cookie; //cookie信息由CookieContainer自行维护
            using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
            {
                dataStream.Write(“json串”);
                dataStream.Close();
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string encoding = response.ContentEncoding;
            if (encoding == null || encoding.Length < 1)
            {
                encoding = "UTF-8"; //默认编码  
            }
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
            return reader.ReadToEnd();

        }
//已经用
 static CookieContainer cookie = new CookieContainer();
        public static string doHttpPost(string Url, string postDataStr)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            //request.ContentType = "application/json";
            //request.Accept = "application/json";
            request.ContentType = "application/json";

            //request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
            request.CookieContainer = cookie;
            Stream myRequestStream = request.GetRequestStream();
            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            response.Cookies = cookie.GetCookies(response.ResponseUri);
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
        }

JMeter基础:请求参数Parameters 、Body Data的区别

使用Jmeter测试时,很多人不知道请求参数Parameters 、Body Data的区别和用途,这里简单介绍下:

先了解一个接口的基本概念

在客户机和服务器之间进行请求-响应时,HTTP协议中包括GET和POST两种基本的请求方法,概念上两者的区别是:

    get:从指定的资源请求数据。
    post:向指定的资源提交要被处理的数据

最直观的表现就是:

GET把参数包含在URL中,POST通过request body传递参数将请求整体提交给服务器。所以接口测试时要区分两种方法对待。

Jmeter中包含Parameters和Body Data两种参数化的方式,区别是什么呢?

    使用Parameters时,Content-Type不传,或者直接传application/x-www-from-urlencoded,若传application/json出错。
    使用Body Data时,Content-Type可传application/x-www-from-urlencoded或application/json,两者的区别是数据格式不同。
---------------------
 

发布了134 篇原创文章 · 获赞 13 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_36074218/article/details/95187152