WebRequestクラスのメソッドを使用してC#がWEBAPI呼び出します

1:取得: 

 パブリック 静的 文字列 HttpGetJsonAPI(文字列URI)
        { 
            試みる
            { 
                HttpWebRequestのWebRequestクラス = (HttpWebRequestの)WebRequest.Create(URI)を。
                webRequest.Method = " GET " 
                webRequest.ContentType = " アプリケーション/ jsonの" ; 
                webRequest.Accept = " アプリケーション/ jsonの" ; 
                 webRequest.Headers.Add(" 認証"、GlobalVariable.NowLoginUser.JwtKey)。

                HttpWebResponseのにWebResponse = (HttpWebResponseの)webRequest.GetResponse(); 
                StreamReaderをリーダー = 新しいStreamReaderを(webResponse.GetResponseStream()、Encoding.UTF8)。
                ストリングRES = reader.ReadToEnd()。
                reader.Close(); 
                返すres.Trimを(); 
            } 
            キャッチ(例外例)
            { 

                戻り ヌル
            } 

        }

2:ポスト:

パブリック 静的 文字列 HttpPostJsonAPI(文字列 URI、文字列パラメータ、文字列型、文字列トークン= "" 
{ 
試みる
{ 
バイト []バイト= Encoding.UTF8.GetBytes(パラメータ)。// 这里需要指定提交的编码 
HttpWebRequestのWebRequestクラス= (HttpWebRequestの)WebRequest.Create(URI)。
webRequest.Method = " POST " ; 
webRequest.ContentType = " アプリケーション/ jsonの" ; 
webRequest.Accept = " アプリケーション/ JSON" ;
 場合(GlobalVariable.NowLoginUser == nullの
webRequest.Headers.Add(" トークン" "" );
  webRequest.Headers.Add(" トークン、GlobalVariable.NowLoginUser.JwtKey); 

webRequest.ContentLength = bytes.Length ; 
ストリームデータストリーム = webRequest.GetRequestStream(); 
dataStream.Write(バイト0 、bytes.Length); 
dataStream.Close(); 

HttpWebResponseのにWebResponse = (HttpWebResponseの)webRequest.GetResponse(); 
StreamReaderをリーダ =新しいStreamReaderを(webResponse.GetResponseStream()、Encoding.UTF8)。
ストリングRES = reader.ReadToEnd()。
reader.Close(); 
返すres.Trimを(); 
} 
キャッチ(例外例)
{ 
戻り ヌル
} 

}

3:対応するエンティティクラスに取得したデータ:

   パブリック 静的リスト<T>のGetData <T>(辞書< 文字列文字列 > dicNamwValue、文字列FunTitile、EnumWebType enumType)
        { 
            試みる
            { 
              
                ストリング strurl = GlobalVariable.WebRemotelyIP + FunTitile。// ; 
                リスト<T> listPcaSumData = 新しいリスト<T> ();
                foreachのVARの項目dicNamwValue)
                { 
                    strurl = strurl + item.Key + " = " + item.Value + " " ; 
                } 
                strurl = strurl.Substring(0、strurl.LastIndexOf(" " ));
                 文字列 strapi = NULL ;
                 もし(enumType == EnumWebType.Get)
                    strapi = HttpGetJsonAPI(strurl);
                  strapi = HttpPostJsonAPI(strurl、ストリング.Empty、EnumWebType.Post.ToString());
                 場合!(strapi = NULL 
                { 

                    jオブジェクトjson1 =(jオブジェクト)JsonConvert.DeserializeObject(strapi)。

                    JValue jTotalCount = (JValue)は[OrigriUserInfo.totalCount] json1。
                    入力tokenType = json1 [OrigriUserInfo.data] .GetType()。
                    スイッチ(tokenType.FullName)
                    { 
                        場合 " Newtonsoft.Json.Linq.JArray " 
                            JArray配列 = (JArray)json1 [OrigriUserInfo.data]。
                            foreachののvar jオブジェクト配列) 
                            {
                                listPcaSumData.Add(JsonConvert.DeserializeObject <T> (jObject.ToString()))。
                            } 
                            ブレーク;
                        場合 " Newtonsoft.Json.Linq.JValue " 
                            JValue JDATA = (JValue)json1 [OrigriUserInfo.data]。
                            listPcaSumData.Add(JsonConvert.DeserializeObject <T> (jdata.ToString()))。
                            破ります; 

                    } 
                    戻りlistPcaSumData。
                } 
                他の
                    リターン はnull ;
            } 
            キャッチ(例外例)
            { 
                戻り ヌル
            } 

        }

       

 

おすすめ

転載: www.cnblogs.com/progress-everyday/p/11269637.html