C# 기반 인터페이스 자동화 테스트(1)

8958 단어
사실 어디를 찾아서 관건적인 코드에 필기를 하는 건데...
 
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

좋은 웹페이지 즐겨찾기