Http POST, selecionar página



  • Olá pessoal, estou tentando me autenticar em um servidor online, mas não consigo selecionar a página a qual quero me conectar, o erro retornado diz que o protocolo é desconhecido...:

    Primeiro a requisição GET
    @
    QObject::connect(&access, SIGNAL(finished(QNetworkReply*)), &loop_get, SLOT(quit()));

    url_str = QString("http://") + info + QString(".server.com");
    server_url = QString("t") + info + QString("-") + info + QString(".server.com");
    
    request.setUrl(QUrl(url_str));
    
    reply = access.get(request);
    loop_get.exec();
    
    if(reply->error() != QNetworkReply::NoError)
    {
        throw std::runtime_error(reply->errorString().toStdString());
    }
    
    delete reply;
    

    @

    e agora a requisição POST:
    @
    QObject::connect(&access, SIGNAL(finished(QNetworkReply*)), &loop_post, SLOT(quit()));

    url_str = "/pagina_que_quero?parametros=5&t=3";
    
    //Montar corpo da msg
    msg_body = QString("message");
    
    //Montar cabeçalho HTTP
    request.setUrl(QUrl(url_str));
    request.setHeader(QNetworkRequest::ServerHeader, server_url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlenconded");
    request.setHeader(QNetworkRequest::ContentLengthHeader, QString::number(message.size()));
    
    reply = access.post(request, QByteArray(message.toStdString().c_str()));
    
    loop_post.exec();
    
    if(reply->error() == QNetworkReply::NoError)
    {
        qDebug() <<"that's ok:\n"<<reply->readAll();
    }
    else
    {
        qDebug() <<"That's not ok:\n"<<reply->errorString();
    }
    
    delete reply;
    

    @

    o erro retornado é:

    @That's not ok:
    "Protocol "" is unknown" @

    Não sei como informar a página desejada ao servidor, no google não se encontra nada sobre isso, apenas exemplos simples. Se alguém puder ajudar eu agradeço.
    :)



  • Não tenho como falar o que esta acontecendo se vc nao mostrar o site que vc quer fazer login, mas vc pode dar uma olhada nesse exemplo que eu fiz "clicando aqui":http://www.4shared.com/zip/aUWk2stNba/testeSimulador.html

    A parte da conexão começa no construtor da classe mainwindow e ele faz conexão no site da folha investe.

    eu removi minha senha, mas se quiser testar, cria um login em "folha investe":http://folhainvest.folha.com.br/

    O compilador que eu utilizei foi o mingw e a versão do Qt foi a 5.



  • O erro já foi solucionado, estou fazendo assim: o login será ativado pelo click de um botão, então eu leio as informações de login e tento me autenticar no servidor, para montar o corpo do pedido eu utilizei um sniffer para ver como a autenticação é feita: o site não criptografa os dados e as informações de login vão no corpo da mensagem: indicando o servidor, o mundo ao qual desejo me logar, o usuário e o password, mas isso eu já fiz, o problema é que ele retorna uma página de erro, mesmo o login estando correto, agradeço pelo seu código, eu vou baixá-lo e ver como você fez.

    O site ao qual tento me autenticar é o ikariam: br.ikaiam.gameforge.com


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.