向網(wǎng)站發(fā)送參數(shù)讀取結(jié)果的小程序的時候遇到了問題,網(wǎng)站是用get方式傳送查詢參數(shù)的,但是我按照網(wǎng)站的格式發(fā)送參數(shù)查詢的結(jié)果一直是空的,用fiddle抓包發(fā)現(xiàn)網(wǎng)站發(fā)送的參數(shù)不是UTF-8編碼的URLENCODE,而是直接把GBK編碼的字符發(fā)送到了服務(wù)器。找了好久沒找到解決辦法,找到了參考的一個很有用的文章點擊打開鏈接,稍微改動一下發(fā)送請求的方式解決了,自己記錄一下。
http的請求本質(zhì)上也是發(fā)送字節(jié)流,所以可以用socket代替c#中的httpwebrequest\response來實現(xiàn):
發(fā)送請求:
public void SendRequest(string server,string requestString,Encoding e){ Uri u= new Uri(server); Socket s=new Socket(AddressFamily.InternetNetwork, SocketType.Stream, ProtocolType.Tcp); s.SendTimeout=3000; s.ReceiveTimeout=3000; s.Connect(u.Host,u.Port); if(s.Connected) { s.Send(e.GetBytes(s),SocketFlags.None); System.Threding.Thread.Sleep(1000);//等待1秒確保數(shù)據(jù)發(fā)送完成,我的請求比較簡單,復(fù)雜的也可以判斷數(shù)據(jù)發(fā)送完成再處理。。。
處理接收的部分可以參考上面說的那個文章,主要是chunked數(shù)據(jù)的接收處理需要特別處理。
相關(guān)推薦:
get請求傳特殊符號的問題
有關(guān)get請求的實例教程
微信小程序網(wǎng)絡(luò)請求(GET請求)詳細(xì)說明
以上就是使用其他編碼參數(shù)的get請求方法的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!