无法使用libcurl

时间:2015-05-30 15:36:49

标签: c++ login libcurl

我尝试登录此网站' http://dpi-env-zb9gfigdcz.elasticbeanstalk.com/sign_in'使用libcurl但每次都会出现404错误。

这是我登录的C代码:

curl_global_init( CURL_GLOBAL_ALL );
CURL * myHandle = curl_easy_init ( );

// Set up a couple initial paramaters that we will not need to mofiy later.
curl_easy_setopt(myHandle, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu;    Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0");
curl_easy_setopt(myHandle, CURLOPT_AUTOREFERER, 1);
curl_easy_setopt(myHandle, CURLOPT_FOLLOWLOCATION, 1);

curl_easy_setopt(myHandle, CURLOPT_COOKIEJAR, "m");
curl_easy_setopt(myHandle, CURLOPT_WRITEFUNCTION, WriteCallback);

// struct curl_slist headers = NULL; // init到NULL非常重要 // curl_slist_append(标题,"接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / *; q = 0.8"); // curl_slist_append(标题,"接受语言:en-US,en; q = 0.5"); // curl_slist_append(标题," Accept-Encoding:gzip,deflate"); // curl_slist_append(标题,"内容类型:application / x-www-form-urlencoded");

curl_easy_setopt(myHandle, CURLOPT_VERBOSE, 1);
//curl_easy_setopt(myHandle, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(myHandle, CURLOPT_HTTPGET,1);

curl_easy_setopt(myHandle, CURLOPT_URL, "http://dpi-env-zb9gfigdcz.elasticbeanstalk.com/sign_in");
curl_easy_perform( myHandle );


char data[512];
sprintf(data, "session[username]=someuser&session[password]=somepass&authenticity_token=%s", [loginToken() UTF8String]);

curl_easy_setopt(myHandle, CURLOPT_COOKIE, "m");
curl_easy_setopt(myHandle, CURLOPT_POSTFIELDS, data);
curl_easy_perform( myHandle );


readBuffer.clear();
curl_easy_setopt(myHandle, CURLOPT_REFERER, "http://dpi-env-zb9gfigdcz.elasticbeanstalk.com/sign_in");
curl_easy_perform( myHandle );



curl_easy_cleanup( myHandle );

Hovever,当我使用命令行卷曲时,它可以很好地登录。

在终端: 导出网址= http://dpi-env-zb9gfigdcz.elasticbeanstalk.com

joe @mcvirt:/ tmp $ curl $ URL / sign_in --cookie-jar cookie | grep csrf   

export AUTHTOK = 4nw2IJo8 / w6mt8vbRx / tx1 + 0EfXLwchT1TrliIberc / xcuPwD0GPdzNdcxb4GqfMQhlBJJXELVIPJiUeyPNq1Q ==

joe@mcvirt:/tmp$ curl -i --cookie-jar cookie --cookie cookie --data "session[username]=someuser&session[password]=somepasss&authenticity_token=$AUTHTOK" $URL/sessions
HTTP/1.1 302 Found
Server: nginx/1.6.2
Date: Sat, 23 May 2015 00:03:36 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Location: http://dpi-env-zb9gfigdcz.elasticbeanstalk.com/menu
Cache-Control: no-cache
Set-Cookie: request_method=POST; path=/
Set-Cookie: 

[R

emember_token=ImtzTlJ1dXh4YjRxMzhpeE5nVkgwc2MtRnBiNFd0TjBkU1FRSWIxREk4UWtpU2w5R0JwVUZhcmtBV0JlT2k0eFBfU3JqSU1rb3Rpd3g2OHdzT2VFc1JnPT0i--38f285d6ce74fdf22c639af32e95839276b2d706; path=/; expires=Wed, 23 May 2035 00:03:36 -0000
Set-Cookie: _djr_session=L2phZjdFVXRieGpHdkhtT2RxTHJhSDBTeGlkdGZuaFdjRjlzTG9OaVlhVjFUejNCdE9uRE1uWHVKaXFvazhCc3RpeWJUVmd0NUJybENHZWRpSENWZXIvT21IT3B0aEwySGtlZG9vaHduZmF4R3ZxODkzZ25lWTltcEVYSmF2ZGFSMVFoS2w0SjJrNE5EalM0aXhXUVFBPT0tLXErTmRjSVMzZUNwUjZ0OEpDWHZNbVE9PQ%3D%3D--2d40f398330eb4ddc3870f01c580ddacf2d43dbf; path=/; HttpOnly
X-Request-Id: b45902ce-67cc-4ec7-9d73-54730f3367e0
X-Runtime: 0.133561

<html><body>You are being <a href="http://dpi-env-zb9gfigdcz.elasticbeanstalk.com/menu">redirected</a>.</body></html>joe@mcvirt:/tmp$ 



joe@mcvirt:/tmp$ cat cookie 
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_dpi-env-zb9gfigdcz.elasticbeanstalk.com   FALSE   /   FALSE   0_djr_session   L2phZjdFVXRieGpHdkhtT2RxTHJhSDBTeGlkdGZuaFdjRjlzTG9OaVlhVjFUejNCdE9uRE1uWHVKaXFvazhCc3RpeWJUVmd0NUJybENHZWRpSENWZXIvT21IT3B0aEwySGtlZG9vaHduZmF4R3ZxODkzZ25lWTltcEVYSmF2ZGFSMVFoS2w0SjJrNE5EalM0aXhXUVFBPT0tLXErTmRjSVMzZUNwUjZ0OEpDWHZNbVE9PQ%3D%3D--2d40f398330eb4ddc3870f01c580ddacf2d43dbf
dpi-env-zb9gfigdcz.elasticbeanstalk.com FALSE   /   FALSE   0   request_method  POST
dpi-env-zb9gfigdcz.elasticbeanstalk.com FALSE   /   FALSE   2063491416  remember_token  ImtzTlJ1dXh4YjRxMzhpeE5nVkgwc2MtRnBiNFd0TjBkU1FRSWIxREk4UWtpU2w5R0JwVUZhcmtBV0JlT2k0eFBfU3JqSU1rb3Rpd3g2OHdzT2VFc1JnPT0i--38f285d6ce74fdf22c639af32e95839276b2d706




joe@mcvirt:/tmp$ curl -X GET -i --cookie cookie  $URL/menu
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Sat, 23 May 2015 00:05:12 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
ETag: W/"3c5d78cb3b7c1a25aab5f64953035c7f"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _djr_session=dVRTMEoxQWIyeDM5SUVpMHA4anRSRmJmYys2RDlPUE4zbllZT21HZ1FXNzdzejNGZGcvQnZCYWFIRThYKyt4bFZyWG9SUmVjc1NEcURvK2hMNWpZd1UraTJ6bmp2UWN2UG9JSEp6bHpMWTB5MGo5TU5vdG9WN01YU3JYUm51amZlNjFqTTRsQjFaZ21kQXo3SU5lYklBPT0tLUxsNEJ2OTlTcFN0WC9PeGZPaTc1eEE9PQ%3D%3D--16fa6bbff0f14a755333295c853be7995ed05210; path=/; HttpOnly
Set-Cookie: request_method=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000
X-Request-Id: 3ca7343d-1cfb-4e28-ab27-14757b7017e7
X-Runtime: 0.015257

<!DOCTYPE html>
<html>
<head>
  <title>Djr</title>
  <link rel="stylesheet" media="all" href="/assets/application-0723cb9a2dd5a514d954f70e0fe0b89f6f9f1ae3a375c182f43b5f2b57e9c869.css" data-turbolinks-track="true" />
  <script src="/assets/application-77c9624b0b1031d948f4b834f80d6d679ce2b17b94ee85a88d1a94279cd48d6d.js" data-turbolinks-track="true"></script>
  <meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="C9RCnnkb3H0aUxPDJdjKVeduUbwGKiajU9S3knZNy8ZBYFPDsc9pgEymukdOEyMvBLzrJs6n7riTZeYQwBpA4Q==" />
</head>
<body>

      <a id="logo" href="/menu">Prod System</a>
      <div id="welcome">
        Welcome, TestFirst TestLast
      </div>



        <li><a href="/menu">Menu</a></li>
          <li>
            <a rel="nofollow" data-method="delete" href="/signout">Sign out</a>
          </li>

        </ul>
        </li>



<p> <a href="/events">List Events</a> </p>





</body>
</html>

0 个答案:

没有答案
相关问题