解决方案 »

  1.   

    http://www.cnblogs.com/top5/archive/2010/05/06/1728842.html
      

  2.   

    http://blog.csdn.net/langman1985/article/details/8568097
      

  3.   

    不就是使用  HttpWebRequest  登陆么?怎么不行 你看看问题呀  不要一直问 
      

  4.   

    是post登陆,但是不行。不知道是不是17k限制了什么?我已经试过不止6个方法  都不行!!!!!!!!!!
      

  5.   

    HttpClient 可以实现跨域(cookie的读写)  都能读写了,你还不能模拟登录么?
    随便找个简单的例子你看吧 http://www.jb51.net/article/32255.htm
      

  6.   

    你没有把登录后返回的Cookies添加到cookieContainer: cookieContainer.Add(response.Cookies);
    我测试可以获取登录后的个人中心页面。准备好充值了吗?using System;
    using System.Text;
    using System.IO;
    using System.IO.Compression;
    using System.Net;namespace com17k
    {
    class Program
    {
    public static void Main(string[] args)
    {
    Login();
    Console.Write("Press any key to continue . . . ");
    Console.ReadKey(true);
    }

    static string userName = "abc%40qq.com";//换成你自己的账号密码
    static string password = "123456";
    public static string Login()
    {
    CookieContainer cookieContainer = new CookieContainer();
    string formatString = "userName={0}&password={1}&isAutoLogin=false&r=0.352970281150192&jsonp=K17.header.loginCallback&randm=0.7668792156036943";
    string postString = string.Format(formatString, userName, password);
    byte[] postData = Encoding.UTF8.GetBytes(postString);
    string URI = "http://passport.17k.com/login.action";

    HttpWebRequest request = WebRequest.Create(URI) as HttpWebRequest;
    request.Method = "POST";
    request.Host = "passport.17k.com";
    request.KeepAlive = true;
    request.Accept = "*/*";
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36";
    request.Referer = "http://www.17k.com/";
    request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
    request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
    request.ContentType = "application/x-www-form-urlencoded";
    request.CookieContainer = cookieContainer;
    request.ContentLength = postData.Length;

    request.Proxy = null;
    request.ServicePoint.ConnectionLimit = int.MaxValue;
    request.Credentials = CredentialCache.DefaultNetworkCredentials;
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

    Stream outputStream = request.GetRequestStream();
    outputStream.Write(postData, 0, postData.Length);
    outputStream.Dispose();

    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    cookieContainer.Add(response.Cookies);
    Stream responseStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"));
    string srcString = reader.ReadToEnd();

    //URI = "http://user.17k.com/myUserCenter/userCenter.action?r=0.5947969739951147";
    URI = "http://www.17k.com/book/vipChapter.action?chapterId=" + match_chapter[i].Groups["Cid"].Value;
    request = WebRequest.Create(URI) as HttpWebRequest;
    request.Method = "GET";
    request.Host = "user.17k.com";
    request.KeepAlive = true;
    request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
    request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36";
    request.Referer = "http://www.17k.com/";
    request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
    request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
    request.CookieContainer = cookieContainer;

    request.Proxy = null;
    request.ServicePoint.ConnectionLimit = int.MaxValue;
    request.Credentials = CredentialCache.DefaultNetworkCredentials;
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

    response = request.GetResponse() as HttpWebResponse;
    responseStream = response.GetResponseStream();
    reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"));
    srcString = reader.ReadToEnd();
    System.Diagnostics.Debug.Print(srcString);
    return srcString;
    }
    }
    }