J'ai rencontré un problème lors de l'envoi d'un petit programme pour les résultats de lecture des paramètres au site Web. Le site Web utilise la méthode get pour transmettre les paramètres de requête, mais lorsque j'envoie les résultats de la requête de paramètres selon le format du site Web, le résultat est toujours vide. J'ai utilisé Fiddle pour capturer le paquet et j'ai découvert que les paramètres envoyés par le site Web ne sont pas des URLENCODE codés en UTF-8, mais que les caractères codés en GBK sont envoyés directement au serveur. Après avoir longtemps cherché, je n'ai pas trouvé de solution. J'ai trouvé un article de référence très utile et j'ai cliqué pour ouvrir le lien. J'ai légèrement modifié la façon d'envoyer la demande et la solution a été résolue.
La requête HTTP envoie essentiellement un flux d'octets, elle peut donc être implémentée en utilisant socket au lieu de httpwebrequestresponse en c# :
Envoyer la requête :
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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
Traitez le message que vous avez reçu peut se référer en partie à l'article mentionné ci-dessus, principalement parce que la réception et le traitement de données fragmentées nécessitent un traitement spécial.
Recommandations associées :
Le problème du passage de symboles spéciaux dans get request
Un exemple de tutoriel sur get request
Description détaillée de la demande de réseau d'applet WeChat (demande GET)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!