Название: QHttp: передача методом post Отправлено: Perchilla от Декабрь 02, 2005, 23:48 Не подкинет кто - нибудь примерчик передачи строки методом post для QT4? Get - не катит, строка длинная, в примерах ничего нет, а пример из книги Бланшета что - то не работает :? .
Название: QHttp: передача методом post Отправлено: crocus от Декабрь 05, 2005, 10:04 Ни post, ни request что-не проходит.
void HttpWindow::uploadFile() { QString fileName = QFileDialog::getOpenFileName(this, tr("OpenFile"), openFilesPath, tr("All Files (*);;Text Files (*.txt)")); if (!fileName.isEmpty()) openFilesPath = fileName; QFileInfo path(openFilesPath); QString fileName1 = path.fileName(); QStringList lines; QByteArray bytes; file = new QFile(fileName1); if ( !file->open(QIODevice::ReadOnly) ) { QMessageBox::information(this, tr("HTTP"), tr("Unable to open the file %1: %2.") .arg(fileName1).arg(file->errorString())); } QHttpRequestHeader header("POST", "/upload.php"); header.setValue("Host", "foliant"); header.setContentType("application/x-www-form-urlencoded"); QString encodedTopic = fileName1; QString searchString = "file=" + encodedTopic; http->setHost("foliant"); httpRequestAborted = false; http->request(header, searchString.toUtf8(), file); urlLineEdit->setText(encodedTopic); } На хлам в коде не обращайте внимания это заготовка. Название: QHttp: передача методом post Отправлено: Perchilla от Декабрь 07, 2005, 08:23 Благодарю за ответ! Сейчас попробую.
Название: QHttp: передача методом post Отправлено: crocus от Декабрь 08, 2005, 05:39 Вот блин лабуда, сервер пишет что все нормально, PHP тоже ошибок не выдает (правда поля referer и user-agent пустые "-"), а если аплодить через страницу нет проблем referer - "страница с которой отправляем"
void HttpWindow::uploadFile() { QString fileName = QFileDialog::getOpenFileName(this, tr("OpenFile"), openFilesPath, tr("All Files (*);;Text Files (*.txt)")); if (!fileName.isEmpty()) openFilesPath = fileName; QFileInfo path(openFilesPath); QString fileName1 = path.fileName(); userfile = new QFile(openFilesPath); if ( !userfile->open(QIODevice::ReadOnly) ) { QMessageBox::information(this, tr("HTTP"), tr("Unable to open the file %1: %2.") .arg(openFilesPath).arg(userfile->errorString())); } QHttpRequestHeader header("POST", "/upload.php", 1, 1); header.setValue("Host", "ваш_хост"); header.setValue("Content-type", "multipart/form-data, boundary=AaB03x"); header.setValue("Cache-Control", "no-cache"); header.setValue("Accept","*/*"); QByteArray byt(openFilesPath.toUtf8()); QByteArray bytes; bytes.append("--AaB03x\r\n"); bytes.append("content-disposition: "); bytes.append("form-data; name=\"userfile\"; filename=\"" + byt+ "\"\r\n"); bytes.append("Content-Transfer-Encoding: binary\r\n"); bytes.append("\r\n"); bytes.append(userfile->readAll()); userfile->close(); // the file is opened earlier in the code bytes.append("\r\n"); bytes.append("--AaB03x--\r\n"); int contentLength = bytes.length(); header.setContentLength(contentLength); http->setHost("foliant"); httpRequestAborted = false; httpGetId = http->request(header, bytes); urlLineEdit->setText(openFilesPath); // проверка файла и пути } Победа разума. Ошибка в коде исправлена можно пользоваться. |