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

小云云
Lepaskan: 2023-03-20 13:22:01
asal
1621 orang telah melayarinya

向网站发送参数读取结果的小程序的时候遇到了问题,网站是用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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
Salin selepas log masuk

处理接收的部分可以参考上面说的那个文章,主要是chunked数据的接收处理需要特别处理。

相关推荐:

get请求传特殊符号的问题

有关get请求的实例教程

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

Atas ialah kandungan terperinci 使用其他编码参数的get请求方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!