C# 기반 인터페이스 자동화 테스트(1)
API 인터페이스에 대한 문자열, POST 액세스 방법:
string url = URL;
string RequestParam = Param;
string headername = HeaderName;
string header = Header;
string html = "";
try
{
WebRequest wbreq = WebRequest.Create(url);
}
catch (WebException WebEx)
{
Console.WriteLine(" URI:" + "\r
" + WebEx.ToString());
}
byte[] byteArray = Encoding.UTF8.GetBytes(RequestParam);
{
//POST
HttpWebRequest RequestInterfaceRequsetByString = (HttpWebRequest)HttpWebRequest.Create(new Uri(URL));
RequestInterfaceRequsetByString.KeepAlive = false;
RequestInterfaceRequsetByString.ProtocolVersion = HttpVersion.Version11;
RequestInterfaceRequsetByString.Method = "post";
RequestInterfaceRequsetByString.ContentType = "application/x-www-form-urlencoded";
RequestInterfaceRequsetByString.Timeout = -1;//
RequestInterfaceRequsetByString.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0";
Encoding encoding = Encoding.GetEncoding("utf-8");
RequestInterfaceRequsetByString.Headers.Add(headername, Header);
try
{
Stream requeststream = RequestInterfaceRequsetByString.GetRequestStream();
requeststream.Write(byteArray, 0, byteArray.Length);
requeststream.Close();
try
{
HttpWebResponse response = (HttpWebResponse)RequestInterfaceRequsetByString.GetResponse();
Stream responsestream = response.GetResponseStream();
StreamReader sr = new StreamReader(responsestream);
html = sr.ReadToEnd(); // , html
responsestream.Close();
response.Close();
}
catch (Exception ex)
{
html = ex.Message;
}
}
catch (Exception ex)
{
html = ex.Message;
}
}
return html;
}
json 전환 사전 형식:
public static Dictionary<string, object> ConvertDictionary(string str)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
//string jsstr = ConvertJsonString(str);
try
{
return jss.Deserializestring, object>>(str);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
사전 형식 접근 API 인터페이스: 문자열 형식 접근 인터페이스와 기본적으로 유사하지만 사전과 관련된 것을 추가해야 합니다. 접근 방법은 POST입니다
Dictionary<string, object> requestdic = ConvertToDictionary.ConvertDictionary(RequestParam);
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in requestdic.Keys)
{
if (i > 0)
{
buffer.AppendFormat("&{0}={1}", key, requestdic[key]);
}
else
{
buffer.AppendFormat("{0}={1}", key, requestdic[key]);
}
i++;
}
byte[] byteArray = Encoding.UTF8.GetBytes(buffer.ToString());
json 문자열을 포맷하려면 다음과 같이 하십시오.
public static string ConvertJsonString(string str)
{
// json
JsonSerializer serializer = new JsonSerializer();
TextReader tr = new StringReader(str);
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);
return textWriter.ToString();
}
else
{
return str;
}
}
}
Json 데이터 처리:
JObject jobj = JObject.Parse(response);
// jobj
var OrderId = jobj["data"]["Orders"][i]["OrderId"];
// Json , JArray
JArray orderobj = (JArray)jobj["data"]["Orders"];
orderobj.count;
전재 대상:https://www.cnblogs.com/rd-ddddd/p/6291746.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.