2013-09-02 2 views
2

QHttp 클래스를 사용하는 Qt 4에서 만든 응용 프로그램이 있습니다. 새로운 Qt는 5 QNetworkAccessManager 클래스 거의 동일한 기능을 가지고 있지만, 나는 개조하면 되겠 어의 몇 가지가 필요합니다포트 Qt 4에서 Qt 5까지 QHttp 클래스

  1. 의 코드 내 조각입니다 : 나는 QNetworkRequest 클래스를 발견

    http=new QHttp (this); 
    if (config->brokerurl.indexOf ("https://") ==0) 
        neworkAccess-> 
        http->setHost (lurl.host(),QHttp::ConnectionModeHttps, 
            lurl.port (443)); 
    else 
        http->setHost (lurl.host(),QHttp::ConnectionModeHttp, 
            lurl.port (80)); 
    

    사용을 메시지를 게시 할 URL 주소이지만 다른 포트에서 작동하는 http와 https를 사용하고 있으므로이 ConnectionMode (http 또는 https)도 설정해야합니다.

    QNetworkRequest에서도 ConnectionMode를 설정할 수있는 방법이 있습니까?

  2. 나는이 코드 조각이 :

    int post (const QString & path, const QByteArray & data, QIODevice * to = 0)<br><br> 
    

    Qt는 5에서 우리가 가진 :

    QNetworkReply * post (const QNetworkRequest & request, QIODevice * data) 
    
    QNetworkReply * post (const QNetworkRequest & request, const QByteArray & data) 
    

    이란 무엇입니까 Qt는 4

    http->post (lurl.path(),req.toUtf8(),&httpSessionAnswer); 
    

    는 서명이 새로운 Qt 5 메시지 (요청 + 데이터) 게시 및 답변 받기 (QIODevice * data))?

답변

1

QUrl()에 포트를 설정할 수 있습니다. 같은 뭔가 (매우 간단) : sslErrors를 들어

QNetworkAcessManager http; 
QUrl url; 
url.setHost("xxx.xxx.xxx.xxx"); 
url.setPort(xxxx); 
QNetworkRequest req(url); 
http.post(req,....); 

:

당신은 QNetworkReply의 신호를 찾을 수 있습니다. 당신은 할 수 있습니다 :

connect(&http,SIGNAL(finished(QNetworkReply *)), 
this,SLOT(finishedSlt(QNetworkReply *))); 

당신의 슬롯에서 :

finishedSlt(QNetworkReply *reply){ 
    connect(reply,SIGNAL(sslErrors(const QList<QSslError> &)), 
    SLOT(sslErrorsSlt(QList<QSslError> &))); 
} 

면책 조항 :이 코드는 단지 예시 및 생산 시스템에 붙여 넣기/복사하는 것은 아닙니다. 면책 조항은

+0

+1입니다. – ulidtko