Не получаю правильного ответа в Http Post, вызов веб-сервиса - PullRequest
0 голосов
/ 09 марта 2012

Я звоню в веб-сервис, используя метод 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>a@a.com</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();
}

1 Ответ

0 голосов
/ 09 марта 2012

QHttp устарело и только здесь для обратной совместимости.

Для нового кода вы должны использовать QNetworkAccessManager / QNetworkRequest / QnetworkReply (http://qt -project.org / doc / qt-4.8 / QNetworkAccessManager.html # details )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...