2010-07-07 6 views
4

다음 코드를 가지고 있으며 호출과 함께 일부 HTTP 헤더 정보를 추가하고 싶습니다. 어쨌든 내가 할 수 있니? 내가 클래스 내에 다음을 사용하지 않을 경우Qt QNetworkAccessManager를 사용하여 HTTP 헤더 정보 보내기

또한
void NeoAPI::call(QString apiCall) { 
    if (this->ApiCall.contains(apiCall)) { 
     QNetworkAccessManager* manager = new QNetworkAccessManager(0); 
     connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*))); 
     QUrl url = this->ApiCall[apiCall]; 
     url.addQueryItem("memberid","76710"); // Set for backdoor debugging 
     manager->get(QNetworkRequest(url)); 
    } else { 
     this->requestResultText = QString("Call %1 doesn't exist").arg(apiCall); 
    } 
} 

void NeoAPI::netReplyFinished(QNetworkReply *netReply) { 
    if (netReply->error() == QNetworkReply::NoError) { 
     this->requestResultText = netReply->readAll(); 
    } else { 
     this->requestResultText = "API Call Failed"; 
    } 
    QMessageBox messageBox; 
    messageBox.setText(this->requestResultText); 
    messageBox.exec(); 
    //delete netReply; 
} 

,의 connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*)));this은 어떤 것입니까?

감사합니다.

답변

7

예, QNetworkRequest의 설명서를 참조하십시오. 나는 클래스 내에서이를 사용하지 않을 경우

QNetworkRequest request(url); 
request.setHeader(QNetworkRequest::ContentTypeHeader, "some/type"); 
request.setRawHeader("Last-Modified", "Sun, 06 Nov 1994 08:49:37 GMT"); 
manager->get(header); 
또한

가, 어떤이 에서이 연결 것 (관리자, 신호 (:

당신이 그런 짓을 할 수 있습니다 완료 됨 (QNetworkReply *)), this, SLOT (netReplyFinished (QNetworkReply *))); 일까요?

아무 것도 아닐 수도 있습니다. 신호를 슬롯에 연결하려면 해당 슬롯이 일부 개체의 멤버 함수 여야합니다. Qt primer on signals and slots에 대한 설명입니다.