使用其他编码参数的get请求方法

小云云
小云云 原创
2023-03-20 13:22:01 1261浏览

向网站发送参数读取结果的小程序的时候遇到了问题,网站是用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请求方法的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。