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();
}
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,兩者的區別是數據格式不同。
---------------------