Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- QMap<QString, QString> http_request::authInstagram( QString login, QString password )
- {
- QUrl request_url("https://www.instagram.com/accounts/login/ajax/");
- QString boundary = "1BEF0A57BE110FD467A";
- QByteArray bytes;
- //bytes.append("\r\n");
- bytes.append("username="+login+"&password="+password);
- QByteArray host;
- host.append( request_url.host() );
- QByteArray type;
- type.append( "application/x-www-form-urlencoded; charset=utf-8" );
- QByteArray length;
- length.append( QString::number( bytes.length() ) );
- QMap<QString, QString> instCookie = http_request::cookieFromURL("https://www.instagram.com/");
- QByteArray csrftoken;
- csrftoken.append( instCookie["csrftoken"] );
- qDebug() << "\nX-CSRFToken: " << csrftoken;
- QByteArray mid;
- mid.append("mid="+instCookie["mid"]+"; csrftoken="+instCookie["csrftoken"] );
- qDebug() << "\nCookie: " << mid;
- QNetworkRequest request;
- request.setUrl( request_url );
- request.setRawHeader("Host", "www.instagram.com" );
- request.setRawHeader("Referer", "https://www.instagram.com/" );
- request.setRawHeader("Cookie", mid);
- request.setRawHeader("Content-Type", type );
- 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");
- request.setRawHeader("Content-Length", length );
- request.setRawHeader("X-CSRFToken", csrftoken );
- request.setRawHeader("X-Instagram-AJAX", "1");
- request.setRawHeader("X-Requested-With", "XMLHttpRequest");
- QNetworkAccessManager* manager = new QNetworkAccessManager();
- QNetworkReply* reply = manager->post( request, bytes );
- QEventLoop wait;
- QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), &wait, SLOT(quit()));
- QTimer::singleShot(300000, &wait, SLOT(quit()));
- QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), manager, SLOT(deleteLater()));
- wait.exec();
- QByteArray answer = reply->readAll();
- reply->deleteLater();
- QString ans_str( answer );
- qDebug() << ans_str;
- QNetworkCookieJar * cookie = manager->cookieJar();
- QList<QNetworkCookie> listCookie = cookie->cookiesForUrl( request_url );
- QMap<QString, QString> result;
- for( int i = 0; i < listCookie.size(); i++ )
- {
- result[ listCookie.at(i).name() ] = listCookie.at(i).value();
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement