パラメータ読み取り結果の小さなプログラムを Web サイトに送信するときに問題が発生しました。Web サイトは get メソッドを使用してクエリ パラメータを送信しますが、Web サイトの形式に従ってパラメータ クエリ結果を送信すると、結果が常に空になります。 fiddle を使用してパケットをキャプチャしたところ、Web サイトがクエリ パラメーターを送信したのは UTF-8 でエンコードされた URLENCODE ではなく、GBK でエンコードされた文字がサーバーに直接送信されたことがわかりました。長い間検索した結果、解決策が見つからなかったので、参考になる非常に役立つ記事を見つけたので、リクエストの送信方法を少し変更して解決したことを自分で記録しました。
HTTP リクエストは基本的にバイト ストリームを送信するため、C# で httpwebrequestresponse の代わりにソケットを使用して実装できます。
リクエストの送信:
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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
受信の処理の部分については、上記の記事を参照してください。主にチャンク化されたデータを処理します。受信処理には特別な処理が必要です。
関連する推奨事項:
WeChat アプレット ネットワーク リクエスト (GET リクエスト) の詳細な説明
以上が他のエンコードされたパラメータを使用してリクエスト メソッドを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。