本帖最后由 kft2001 于 2013-04-27 07:07:52 编辑

解决方案 »

  1.   

    下了一个csdn 的demo也不能自动登录lz想实现类似抢票的功能么?
      

  2.   

    使用与firefox同样的Http请求报文进行调试,发现返回的页面总显示“输入包含错误字符。请重试。”
    然而使用firefox手动登陆就没问题,难道网站对我进行了客户端验证?
      

  3.   

    使用httpanalyzer发出与firefox同样的报文,能够正常登陆,说明报文没有问题。
    不知wininet的问题出在哪,求高手解答!
      

  4.   

    可能还有一些行为你没有模拟出来。
    最近用PHP做一个https的网站的数据采集,登录正常,在获取某些数据的时候失败,原因是需要在获取请求前,进行另一个请求。
      

  5.   

    各网站不同 有的是cookie,百度那种还要token什么东西,lz的网站是?
      

  6.   

    200只是说明人家收到了,当成登陆的数据还是垃圾数据还是另外一回事儿
    200 OK
    指示客服端的请求已经成功收到,解析,接受。
    ------------------------------------------------------AutoCSDN签名档------------------------------------------------------
      

  7.   

    返回的状态码为0x7fffffff,不知道是什么意思。
      

  8.   

    解决了困扰我很长时间的自动登录问题,该问题主要表现为:
    1.不带INTERNET_FLAG_SECURE标志创建CHttpConnection对象时,自动登录成功,
      但从返回的页面看,并没有登录进入账号页面。
    2.带INTERNET_FLAG_SECURE标志创建CHttpConnection对象时,自动登录失败,
      通过QueryInfoStatusCode查询错误码时,返回0x7fffffff,该错误码在MSDN上无法查到。
      绕了一大圈,最后从返回报文中了解到,请求报文被以明文形式发给了HTTPS服务器。
      通过网络搜索该问题,了解到在每次调用OpenRequest时也需要加上INTERNET_FLAG_SECURE标志。
    之所以困扰我很长时间是没想到会在两个地方使用INTERNET_FLAG_SECURE标志,潜意识认为创建CHttpConnection对象时
    设定了INTERNET_FLAG_SECURE标志后,调用CHttpConnection::OpenRequest时应该默认就对请求报文进行加密了,没想到
    CHttpConnection::OpenRequest需要单独设置INTERNET_FLAG_SECURE标志,否则就讲求报文以明文形式发给服务器,尽管
    该服务器为HTTPS服务器。
    后来想想,WinInet将同一个INTERNET_FLAG_SECURE标志用在两个地方,各有各的作用,创建CHttpConnection对象时设置INTERNET_FLAG_SECURE标志
    是为了告诉系统连接到服务器的HTTPS端口443上,否则就连接到HTTP端口80上。而CHttpConnection::OpenRequest设置INTERNET_FLAG_SECURE标志
    是为了告诉系统对请求报文加密,否则就明文传递。实际上加密是通过SSL来完成的。
      

  9.   

    楼主,我也碰到跟你类似的情况。我是按照抓到的包内容发送的,也设置了你所说的两处INTERNET_FLAG_SECURE,可是响应头没有我想要的Cookie信息,返回状态是200,但是根本就没登陆成功。请问你最后是怎么解决的?