QNetworkAccessManager无法正常工作

时间:2015-08-18 10:32:42

标签: c++ visual-studio-2010 qt

这是遗留代码,我想从Qt4转换为Qt5.5。我不太了解服务器端发生的事情。

我正在尝试使用QNttp从Qt4转换为Qt4.5,使用QNetworkAccessManager转换为Qt5.5,

void JobCreator::CreateJob(QString userName, QString password, QString jobName, QString jobData)
{
    methodName = createJob;

    QHttpRequestHeader header = initialize();
    QString queryString = "function=CreateJob&username=" + userName + "&password=" + password + "&jobname=" + jobName + "&jobdata=" + jobData;
    httpRequestId = http->request(header, queryString.toUtf8());
}

我已将此更改为以下内容,

void JobCreator::CreateJob(QString userName, QString password, QString jobName, QString jobData)
{   
    methodName = createJob;

    QUrl url;
    url.setScheme("http");
    url.setHost("112.165.1.190");
    url.setPath("/BSR/job/");

    QByteArray qData;
    qData.append("function=CreateJob&");
    qData.append("username=" + userName);
    qData.append("&password=" + password);
    qData.append("&jobname=" + jobName);
    qData.append("&jobdata=" + jobData);


    QNetworkRequest request;
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setUrl(url);

    reply = http->post(request, qData);
}

此代码不起作用。它给出了“错误:连接被拒绝”。 如何正确转换此代码。

1 个答案:

答案 0 :(得分:0)

我的错误。忘了设置端口。

url.setPort(portNo)

并且代码现在正常工作。