C#リクエストインターフェイス302リダイレクトでCookieを取得できません

問題が発生しました: サードパーティのインターフェイスをリクエストするときに、postman でテストしたところ、Cookie 値を取得できました。プロジェクトでは、インターフェイスは Cookie を取得できず、戻りステータスは 302 リダイレクトです。

解決

パラメータを設定します:AllowAutoRedirect = false;
デフォルト値は true
ハンドラーが HTTP リダイレクト ヘッダーに従ってリソースの新しい場所に自動的に移動するようにする場合は true

AllowAutoRedirect が false に設定されている場合、HTTP ステータス コード 300 ~ 399 を持つすべての HTTP 応答がアプリケーションに返されます。

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "Get";
                
                request.AllowAutoRedirect = false;
                CookieContainer cookieContainer = new CookieContainer();
                Cookie JSESSIONID = new Cookie("JSESSIONID", Global.JSESSIONID);
                JSESSIONID.Domain = "xxx.xxx.xxx.xxx";
                cookieContainer.Add(JSESSIONID);
                request.CookieContainer = cookieContainer;
                //---------------------------------------------------
                //响应
                //---------------------------------------------------
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream rspStream = response.GetResponseStream();
                using (StreamReader reader = new StreamReader(rspStream, Encoding.UTF8))
                {
                    string resRead = reader.ReadToEnd();
                    rspStream.Close();
                }

                response.Close();

Supongo que te gusta

Origin blog.csdn.net/drunk2/article/details/128316591
Recomendado
Clasificación