Название: Windows не дает интернет доступ программе
Отправлено: abodnya от Июнь 07, 2013, 16:45
Такс, я написал свой просморщик картинок, в котром реализована функция заливки изображений в вк и imageshack. На компьютерах, на которых я компилил сиё чудо всё работает отлично. На других "чистеньких" компьютерах программа не получает интернет доступа. примерный код обращения к серверу #include "uploadtoimageshack.h" void UploadToImageShack::operator()(QString imagename) { QPixmap image(imagename); QByteArray imageData; QBuffer buffer(&imageData); buffer.open(QIODevice::WriteOnly); image.save(&buffer, "PNG"); upload(imageData,imagename); }
void UploadToImageShack::upload(QByteArray &picture,QString imagename) { qDebug() << "start upload"; QNetworkAccessManager *manager = new QNetworkAccessManager(); QNetworkRequest request(QUrl("https://post.imageshack.us/upload_api.php")); request.setRawHeader("Host", "imageshack.us"); request.setRawHeader("Content-type", "multipart/form-data, boundary=AyV04a"); request.setRawHeader("Cache-Control", "no-cache"); request.setRawHeader("Accept","*/*");
QByteArray requestData;
requestData.append("--AyV04a\r\n"); requestData.append("content-disposition: "); requestData.append("form-data; name=\"key\"\r\n"); requestData.append("\r\n"); requestData.append("23459IQU68b63f0be4cfcf631cc6b40b5519c6cb"); requestData.append("\r\n");
requestData.append("--AyV04a\r\n"); requestData.append("content-type: "); requestData.append("image/png\r\n"); requestData.append("content-disposition: "); requestData.append(QString("file; name=\"fileupload\"; filename=\"%1\"\r\n").arg(imagename)); requestData.append("Content-Transfer-Encoding: binary\r\n"); requestData.append("\r\n"); requestData.append(picture); requestData.append("\r\n");
requestData.append("--AyV04a\r\n"); requestData.append("content-disposition: "); requestData.append("form-data; name=\"format\"\r\n"); requestData.append("\r\n"); requestData.append("json\r\n"); requestData.append("--AyV04a--");
manager->post(request, requestData); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(uploaded(QNetworkReply*))); connect(manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),this,SLOT(problems())); }
void UploadToImageShack::uploaded(QNetworkReply *response) { qDebug() << "finish upload"; QVariantMap responseMap = JSON::parse(response->readAll()).toMap(); QVariantMap linkMap = responseMap["links"].toMap(); QMap<QString,QString> links; links["Link"] = linkMap["is_link"].toString(); links["ImageBB"] = linkMap["image_bb"].toString(); links["ImageHtml"] = linkMap["image_html"].toString(); links["ImageLink"] = linkMap["image_link"].toString(); links["ThumbBB"] = linkMap["thumb_bb"].toString(); links["ThumbLink"] = linkMap["thumb_link"].toString(); emit linkReady(links); } void UploadToImageShack::problems() { qDebug() << "problems with upload"; QMap<QString,QString> links; emit linkReady(links); } void UploadToImageShack::abort() { // How abort current uploading ? } в итоге программа получает "problems with upload" при включенном интернете. код и ехе-шник тут : https://github.com/abodnyaUA/qimageviewer прошу помощи
Название: Re: Windows не дает интернет доступ программе
Отправлено: GreatSnake от Июнь 07, 2013, 16:49
Прокси?
Название: Re: Windows не дает интернет доступ программе
Отправлено: mutineer от Июнь 07, 2013, 16:52
А что приходит в слот problems() во втором параметре? Какие ошибки выдает?
З.Ы. Ты же в курсе что у тебя память течет?
Название: Re: Windows не дает интернет доступ программе
Отправлено: Fregloin от Июнь 07, 2013, 17:19
на лицо проблема с файрволом или настройками сети. как подсказывают, может быть проблема в прокси сервере.
Название: Re: Windows не дает интернет доступ программе
Отправлено: abodnya от Июнь 07, 2013, 18:06
проблемы с прокси сразу на всех тестриуемых компьютерах?
про утечку памяти, вижу. Этот блок кода писал второй разработчик, поправлю потом
Название: Re: Windows не дает интернет доступ программе
Отправлено: mutineer от Июнь 07, 2013, 18:22
Так о каких ошибках рапортует QNAM?
Название: Re: Windows не дает интернет доступ программе
Отправлено: abodnya от Июнь 07, 2013, 18:24
при попытке загрузить файл, вызывается сигнал abort
Название: Re: Windows не дает интернет доступ программе
Отправлено: mutineer от Июнь 07, 2013, 18:25
не вижу в коде сигнала abort()
Название: Re: Windows не дает интернет доступ программе
Отправлено: abodnya от Июнь 07, 2013, 18:51
т.е. не abort(), а problem()
Название: Re: Windows не дает интернет доступ программе
Отправлено: abodnya от Июнь 07, 2013, 18:53
тьфу блин. Проблема была в том, что не положил библиотеки от OpenSSL в папку с программой
Название: Re: Windows не дает интернет доступ программе
Отправлено: mutineer от Июнь 07, 2013, 18:56
connect(manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),this,SLOT(problems()));
Не игнорируй второй параметр сигнала, выводи список ошибок хотя бы в лог
|