使用C#

时间:2015-09-12 12:04:42

标签: c#

例如:https://www.website.com/index.php?action=get_products

此页面/操作包含以下源代码:<tr><td>Table</td></tr>

index.php页面包含以下源代码:<body>Hello</body>

当我使用下面的代码时,我仍然得到index.php代码,而不是操作页面代码:

Uri url = new Uri("https://www.website.com/index.php");
        HttpWebRequest request = null;

        ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);
        CookieContainer cookieJar = new CookieContainer();

        request = (HttpWebRequest)WebRequest.Create(url);
        request.CookieContainer = cookieJar;
        request.Method = "GET";
        HttpStatusCode responseStatus;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            responseStatus = response.StatusCode;
            url = request.Address;
        }

        if (responseStatus == HttpStatusCode.OK)
        {
            UriBuilder urlBuilder = new UriBuilder(url);
            urlBuilder.Path = urlBuilder.Path.Remove(urlBuilder.Path.LastIndexOf('/')) + "/j_security_check";

            request = (HttpWebRequest)WebRequest.Create(urlBuilder.ToString());
            request.Referer = url.ToString();
            request.CookieContainer = cookieJar;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

            using (Stream requestStream = request.GetRequestStream())
            using (StreamWriter requestWriter = new StreamWriter(requestStream, Encoding.ASCII))
            {
                string postData = "?action=get_products";
                requestWriter.Write(postData);
            }

            string responseContent = null;

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (Stream responseStream = response.GetResponseStream())
            using (StreamReader responseReader = new StreamReader(responseStream))
            {
                responseContent = responseReader.ReadToEnd();
            }

            Console.WriteLine(responseContent);
        }
        else
        {
            Console.WriteLine("Client was unable to connect!");
        }   

我在another stackoverflow线程中找到了上面的代码。问题是我必须首先使用用户名和密码密码登录。如何使用C#完成此操作?

0 个答案:

没有答案