Advertisement
Guest User

Untitled

a guest
Feb 19th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. QMap<QString, QString> http_request::authInstagram( QString login, QString password )
  2. {
  3.     QUrl request_url("https://www.instagram.com/accounts/login/ajax/");
  4.     QString boundary = "1BEF0A57BE110FD467A";
  5.     QByteArray bytes;
  6.     //bytes.append("\r\n");
  7.     bytes.append("username="+login+"&password="+password);
  8.  
  9.  
  10.     QByteArray host;
  11.     host.append( request_url.host() );
  12.  
  13.     QByteArray type;
  14.     type.append( "application/x-www-form-urlencoded; charset=utf-8" );
  15.  
  16.     QByteArray length;
  17.     length.append( QString::number( bytes.length() ) );
  18.  
  19.     QMap<QString, QString> instCookie = http_request::cookieFromURL("https://www.instagram.com/");
  20.     QByteArray csrftoken;
  21.     csrftoken.append( instCookie["csrftoken"] );
  22.     qDebug() << "\nX-CSRFToken: " << csrftoken;
  23.  
  24.     QByteArray mid;
  25.     mid.append("mid="+instCookie["mid"]+"; csrftoken="+instCookie["csrftoken"] );
  26.     qDebug() << "\nCookie: " << mid;
  27.  
  28.  
  29.     QNetworkRequest request;
  30.     request.setUrl( request_url );
  31.     request.setRawHeader("Host", "www.instagram.com" );
  32.     request.setRawHeader("Referer", "https://www.instagram.com/" );
  33.     request.setRawHeader("Cookie", mid);
  34.     request.setRawHeader("Content-Type", type );
  35.     request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36");
  36.     request.setRawHeader("Content-Length", length );
  37.  
  38.     request.setRawHeader("X-CSRFToken", csrftoken );
  39.     request.setRawHeader("X-Instagram-AJAX", "1");
  40.     request.setRawHeader("X-Requested-With", "XMLHttpRequest");
  41.  
  42.  
  43.  
  44.     QNetworkAccessManager* manager = new QNetworkAccessManager();
  45.     QNetworkReply* reply = manager->post( request, bytes );
  46.  
  47.     QEventLoop wait;
  48.     QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), &wait, SLOT(quit()));
  49.     QTimer::singleShot(300000, &wait, SLOT(quit()));
  50.  
  51.     QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), manager, SLOT(deleteLater()));
  52.     wait.exec();
  53.     QByteArray answer = reply->readAll();
  54.     reply->deleteLater();
  55.  
  56.     QString ans_str( answer );
  57.     qDebug() << ans_str;
  58.  
  59.     QNetworkCookieJar * cookie = manager->cookieJar();
  60.     QList<QNetworkCookie> listCookie = cookie->cookiesForUrl( request_url );
  61.  
  62.  
  63.     QMap<QString, QString> result;
  64.  
  65.     for( int i = 0; i < listCookie.size(); i++ )
  66.     {
  67.         result[ listCookie.at(i).name() ] = listCookie.at(i).value();
  68.     }
  69.  
  70.     return result;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement