ASP.NET MVC在控制器中分別用Get和post模式調用天氣url返回資料亂碼

來源:互聯網
上載者:User

標籤:

ASP.NET MVC在控制器分別中用Get和POST模式調用天氣url返回資料亂碼

!!!已解決,分享分享!!!

感謝大神:Daniel Cai

感謝大神:顧曉北 

 post方法,本人不知道,如果有大神知道,請指導!!

 

//用UTF-8轉碼有漢字參數的url        protected string UrlUtf_8(string url)        {            byte[] bs = Encoding.GetEncoding("UTF-8").GetBytes(url);            StringBuilder sb = new StringBuilder();            for (int i = 0; i < bs.Length; i++)            {                if (bs[i] < 128)                    sb.Append((char)bs[i]);                else                {                    sb.Append("%" + bs[i++].ToString("x").PadLeft(2, ‘0‘));                    sb.Append("%" + bs[i].ToString("x").PadLeft(2, ‘0‘));                }            }            return sb.ToString();        }        //用UrlGB2312轉碼有漢字參數的url        protected string UrlGB2312(string url)        {            byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(url);            StringBuilder sb = new StringBuilder();            for (int i = 0; i < bs.Length; i++)            {                if (bs[i] < 128)                    sb.Append((char)bs[i]);                else                {                    sb.Append("%" + bs[i++].ToString("x").PadLeft(2, ‘0‘));                    sb.Append("%" + bs[i].ToString("x").PadLeft(2, ‘0‘));                }            }            return sb.ToString();        }//get方法  這裡url的類比地址為http://wthrcdn.etouch.cn/weather_mini?city=北京        public string GetFunction(string url)        {            string serviceAddress = url;            //HttpWebRequest類繼承於WebRequest,並沒有自己的建構函式,需通過WebRequest的Creat方法 建立,並進行強制的類型轉換             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);            request.ContentType = "text/html;charset=UTF-8";            request.Method = "GET";            //通過HttpWebRequest的GetResponse()方法建立HttpWebResponse,強制類型轉換             HttpWebResponse response = (HttpWebResponse)request.GetResponse();            //GetResponseStream()方法擷取HTTP響應的資料流,並嘗試取得URL中所指定的網頁內容             Stream myResponseStream = response.GetResponseStream();            //網站在響應的時候用gzip壓縮過了,用using (var gStream = new GZipStream(myResponseStream, CompressionMode.Decompress)){}解壓             using (var gStream = new GZipStream(myResponseStream, CompressionMode.Decompress))            {                //Encoding.GetEncoding("UTF-8")轉碼                StreamReader myStreamReader = new StreamReader(gStream, Encoding.GetEncoding("UTF-8"));                string retString = myStreamReader.ReadToEnd();                myStreamReader.Close();                response.Close();                myResponseStream.Close();                return retString;            }        }
View Code

 

ASP.NET MVC在控制器中分別用Get和post模式調用天氣url返回資料亂碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.