2012-03-09 17 views
0

私は、HTTP POSTメソッドを使用してWebサービスを呼び出し、テキストの下に取得していますは、応答でWebサービスのHTTP POSTを呼び出し

HTTP/1061.1061 1061(私がデバッグでQHttpResponseHeaderを印刷しています)

で適切な応答を取得していないが、実際には、エラーコードまたはxmlを返す必要があります。私は唯一まだここに下位互換性を維持するために推奨されていませんコード

//.cpp file code 
MainWindow::MainWindow(QWidget *parent) 
: QMainWindow(parent), ui(new Ui::MainWindow) 
{ 
    qDebug() << "start"; 
    http = new QHttp(this); // http declared as a member of MainWindow class 
    connect(http, SIGNAL(requestFinished(int,bool)), SLOT(replyFinished(int, bool))); 

    QByteArray data;//(QString("--" + boundary + "\r\n").toAscii()); 
    data += "Content-Disposition: form-data; name=\"action\"\r\n\r\n"; 

    data += "Content-Type: text/xml;charset=\"utf-8\"\r\n\r\n"; 

    data += QString("<LoginData><IMEI>test123</IMEI><email>[email protected]</email></LoginData>").toAscii(); 
    data += "\r\n"; 

    data += "Content-Disposition: form-data; name=\"description\"\r\n\r\n"; 

    data += "\r\n"; 

    QHttpRequestHeader header("Content-Type","application/soap+xml;charset=UTF-8"); 
    header.setValue("Host", "http://xxx.com/restwebservice/ForgotPassword.ashx?"); 
    header.setValue("Accept-Language", "en-us,en;q=0.5"); 
    header.setValue("Keep-Alive", "300"); 
    header.setValue("Connection", "keep-alive"); 
    header.setValue("Referer", "http://xxx.com/restwebservice/ForgotPassword.ashx?"); 

    qDebug() << "the sent data is :" + data; 
    http->setHost("http://xxx.com/restwebservice/ForgotPassword.ashx?"); 
    http->request(header, data); 

    ui->setupUi(this); 
} 

スロット方式

void MainWindow :: replyFinished(int , bool) 
{ 
    QHttpResponseHeader responce = http->lastResponse(); 
    qDebug()<<"reply is :" + responce.toString(); 
} 

答えて

0

QHttp以下に間違っているといものを私に教えてください。新しいコードの場合

私は、Webサービスを使用して画像をアップロードしたい場合、あなたはそれから.... QNetworkAccessManager/QNetworkRequest/QnetworkReplyhttp://qt-project.org/doc/qt-4.8/QNetworkAccessManager.html#details

+0

ありがとう、それが働いていた男.... – Rajesh

+0

ともう一つを使用する必要がありますこのクラスも使用されるか、QHttpを使用する必要があります。 – Rajesh

+1

同じクラス。 QNetworkAccessManager :: post()を使用してデータをアップロードします。 – Koying

関連する問題