他のエンコードされたパラメータを使用してリクエスト メソッドを取得する

小云云
リリース: 2023-03-20 13:22:01
オリジナル
1681 人が閲覧しました

パラメータ読み取り結果の小さなプログラムを 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート