Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C如何通过HttpWebRequest调用多个POST,GET请求,并使用相同的cookie?_C#_Httpwebrequest_Http Post_Http Get_Multiple Instances - Fatal编程技术网

C# C如何通过HttpWebRequest调用多个POST,GET请求,并使用相同的cookie?

C# C如何通过HttpWebRequest调用多个POST,GET请求,并使用相同的cookie?,c#,httpwebrequest,http-post,http-get,multiple-instances,C#,Httpwebrequest,Http Post,Http Get,Multiple Instances,我的问题是,如何在C中使用相同的身份验证cookie通过HttpWebRequest调用多个请求?我试了很多次,但现在我不知道怎么做:/ 我的代码如下: var postData = "method=loginFormAccount&args[0][email]=###&args[0][pass]=###&args[0][cache]=37317&args[]=1"; var data = Encoding.ASCII.GetByt

我的问题是,如何在C中使用相同的身份验证cookie通过HttpWebRequest调用多个请求?我试了很多次,但现在我不知道怎么做:/

我的代码如下:

        var postData = "method=loginFormAccount&args[0][email]=###&args[0][pass]=###&args[0][cache]=37317&args[]=1";
        var data = Encoding.ASCII.GetBytes(postData);

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("###");
        request.CookieContainer = new CookieContainer();
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.AllowAutoRedirect = true;            

        using (var stream = request.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        var cookies = new CookieContainer();
        cookies.Add(response.Cookies);

        System.IO.File.WriteAllText(@desktop + "\\post.html", new StreamReader(response.GetResponseStream()).ReadToEnd());

        // =================================== END LOGIN ==================================== \\

        System.IO.File.WriteAllText(@desktop + "\\cookie.html","");

        foreach (Cookie cook in response.Cookies)
        {
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@desktop + "\\cookie.html", true))
            {
                file.WriteLine(cook.ToString());
            }
            // Show the string representation of the cookie.                
        }

        HttpWebRequest requestNext = (HttpWebRequest)WebRequest.Create("####");
        requestNext.CookieContainer = cookies;
        requestNext.Method = "GET";

        HttpWebResponse responseNext = (HttpWebResponse)requestNext.GetResponse();

        //var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

        System.IO.File.WriteAllText(@desktop + "\\get.html", new StreamReader(responseNext.GetResponseStream()).ReadToEnd());
我的主要问题是,我得到的cookie是身份验证之前的cookie,因此我必须在身份验证之后做一些事情来获得cookie。

尝试以下方法:


你确定你从第一个请求中得到了身份验证cookie吗?是的,我确定。我有东西。代码目前运行良好,var cookies=newCookieContainer;cookies.Addresponse.cookies;应用程序已将cookie添加到CookieContainer,但无法将此CookieContainer添加到下一个请求。我写了一个小函数,将cookie从第一个请求写入文件,这是工作cookie,第二个请求获取创建新cookie的请求,就好像第一个请求没有通过一样。我不知道为什么它会创建新的cookie:/
HttpWebRequest requestNext = (HttpWebRequest)WebRequest.Create("####");
requestNext.CookieContainer.Add(cookies);