欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

使用其他编码参数的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请求的实例教程

微信小程序网络请求(GET请求)详细说明

以上就是使用其他编码参数的get请求方法的详细内容,更多请关注其它相关文章!