Beim Senden eines kleinen Programms zum Lesen von Parametern an die Website ist ein Problem aufgetreten. Die Website verwendet die Get-Methode zum Übertragen der Abfrageparameter, aber wenn ich Parameterabfrageergebnisse entsprechend dem Format der Website sende, ist das Ergebnis Immer leer. Ich habe Fiddle zum Erfassen des Pakets verwendet und festgestellt, dass die von der Website gesendeten Parameter kein UTF-8-codierter URLENCODE sind, sondern GBK-codierte Zeichen direkt an den Server gesendet werden. Nachdem ich lange gesucht hatte, konnte ich keinen sehr nützlichen Artikel zum Nachschlagen finden und habe die Art und Weise zum Senden der Anfrage leicht geändert, und die Lösung wurde selbst gelöst.
Die HTTP-Anfrage sendet im Wesentlichen einen Byte-Stream, sodass sie mithilfe von Socket anstelle von httpwebrequestresponse in c# implementiert werden kann:
Anfrage senden:
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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
Verarbeiten Sie die empfangenen Daten Ich kann teilweise auf den oben genannten Artikel verweisen, hauptsächlich weil der Empfang und die Verarbeitung von Chunk-Daten eine spezielle Verarbeitung erfordert.
Verwandte Empfehlungen:
Das Problem der Übergabe spezieller Symbole in Get-Request
Ein Beispiel-Tutorial zu Get-Request
Detaillierte Beschreibung der WeChat-Applet-Netzwerkanfrage (GET-Anfrage)
Das obige ist der detaillierte Inhalt vonRufen Sie die Anforderungsmethode mithilfe anderer Codierungsparameter ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!