Ерунда какая-то - вылетает, когда передаются параметры, если вызываю любой другой слот (без параметров) например
connect( agents_w, SIGNAL( ready_Agent(QString, QString, QString) ), network_a, SLOT( updatePaper() ) );
- коннект проходит, для проверки
дописывал
send_Agent("2", "2", "2")
в "updatePaper()" - отрабатывает.
Нашел где падает:
void Network::send_Agent(QString &agent_n, QString &agent_m, QString &agency_c)
{
QString md5_str = genRandomMD5();
//////////////////////////////////////////////////////////////////////////
QHttpRequestHeader header( "POST", "/agent_ready.php", 1, 1 );
header.setValue( "Host", "foliant" );
header.setValue( "Content-type", "multipart/form-data, boundary=" + md5_str + "" );
header.setValue( "Cache-Control", "no-cache" );
header.setValue( "Accept", "*/*" );
QByteArray bytes;
bytes.append( "--" + md5_str + "\r\n" );
bytes.append( "content-disposition: " );
bytes.append( "form-data; name=\"agency\"\r\n" );
bytes.append( "\r\n" );
bytes.append( "" + agency_c + "\r\n" );
bytes.append( "--" + md5_str + "\r\n" );
bytes.append( "content-disposition: " );
bytes.append( "form-data; name=\"name\"\r\n" );
bytes.append( "\r\n" );
bytes.append( "" + agent_n + "\r\n" );
bytes.append( "--" + md5_str + "\r\n" );
bytes.append( "content-disposition: " );
bytes.append( "form-data; name=\"mail\"\r\n" );
bytes.append( "\r\n" );
bytes.append( "" + agent_m + "\r\n" );
bytes.append( "--" + md5_str + "--" );
int contentLength = bytes.length();
header.setContentLength( contentLength );
httpRequestAborted = false;
QMessageBox::information( this, tr( "Network module" ),
tr( "A query to the server is not executed : %1, %2 , %3, %4." )
.arg( agent_n, agent_m, agency_c, md5_str)); /// убедился,что параметры и хэш в порядке
httpGetId = http->request( header, bytes ); /// ВОТ ЗДЕСЬ И ПАДАЕТ!!!
//http->request( header, bytes );
}
Работа с сетью практически полностью из /examples/network/http
добавлено спустя 8 часов 8 минут: Нашел --- все косяки из-за отсутствия
http->setHost(........... );
, хотя в хедере
header.setValue( "Host", ......... );
присутствует и "file"
void HttpWindow::httpRequestFinished(int requestId, bool error)
{
..............................................
if (requestId != httpGetId)
return;
progressDialog->hide();
file->close(); // здесь!!!
if (error) {
file->remove(); /// и здесь
...............................................
}
, т.е. при отсутствии "setHost" попадало на "file->remove();" и вылетало, а после правки стало вылетать на "file->close();", пока в конструкторе не прописал file = new QFile.