使用其他编码参数的get请求方法
程序员文章站
2022-05-18 16:03:21
...
向网站发送参数读取结果的小程序的时候遇到了问题,网站是用get方式传送查询参数的,但是我按照网站的格式发送参数查询的结果一直是空的,用fiddle抓包发现网站发送的参数不是UTF-8编码的URLENCODE,而是直接把GBK编码的字符发送到了服务器。找了好久没找到解决办法,找到了参考的一个很有用的文章点击打开链接,稍微改动一下发送请求的方式解决了,自己记录一下。
http的请求本质上也是发送字节流,所以可以用socket代替c#中的httpwebrequest\response来实现:
发送请求:
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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
处理接收的部分可以参考上面说的那个文章,主要是chunked数据的接收处理需要特别处理。
相关推荐:
以上就是使用其他编码参数的get请求方法的详细内容,更多请关注其它相关文章!
推荐阅读
-
页面get请求 中文参数方法乱码问题的快速解决方法
-
postman的安装与使用方法(模拟Get和Post请求)
-
pandas使用get_dummies进行one-hot编码的方法
-
yii2 在控制器中验证请求参数的使用方法
-
使用python将请求的requests headers参数格式化方法
-
对python中使用requests模块参数编码的不同处理方法
-
nodejs使用http模块发送get与post请求的方法示例
-
vue axios数据请求get、post方法的使用
-
页面get请求 中文参数方法乱码问题的快速解决方法
-
PHP使用file_get_contents或curl请求https的域名内容为空或Http 505错误的问题排查方法