crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QNetworkAccessManager :: авторизация, символ @ в имени пользователя
grio
  опции профиля:
сообщение 6.4.2010, 18:01
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Салют, парни!

Потелял несколько дней на QFtp и его перманентную ошибку "Downloading file failed:SIZE not allowed in ASCII mode"
А сегодняшний день слил переписывая код под QNetworkAccessManager.

Проблема такая: логин содержит символ @, который трактуется, как разделитель при работе с QNetworkAccessManager.
В QFtp такой проблемы небыло, но он жестко глючит. И, как я понял, их вместе с QHttp сняли с производства. )

Пробовал заменить '@' на '%40' - результат выполнения авторизации другой, но тоже отрицательный.

Что делать, если логин не меняется?

br,
grio.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 6.4.2010, 21:21
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


grio,
уверен что это именно QNetworkAccessManager виноват.
может ты сам запрос неверно составляешь.
возьми снифером проверь как с этой проблемой справляется QFtp.
и отправь такой же запрос авторизации.

покажи код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 6.4.2010, 22:00
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Цитата(grio @ 6.4.2010, 18:01) *
Салют, парни!

Потелял несколько дней на QFtp и его перманентную ошибку "Downloading file failed:SIZE not allowed in ASCII mode"

Работал с QFtp и никаких таких проблем не возникало. В семлах есть пример - скачивалка файлов, посмотри, авось поможет.
Авось этот глюк сервера?!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 7.4.2010, 4:13
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(kwisp @ 6.4.2010, 22:21) *
grio,
уверен что это именно QNetworkAccessManager виноват.
может ты сам запрос неверно составляешь.
возьми снифером проверь как с этой проблемой справляется QFtp.
и отправь такой же запрос авторизации.

покажи код.


QFtp работает с сервером отдельными командами. Сначала авторизуется, потом заходит в директорию, а только потом запрашивает файл.
QNetworkAccessManager пытается все сделать в одном запросе. Сперва фомирует строку ftp://login:pass@server/file из составляющих QUrl, а потом делает запрос. В этом как раз и проблема.

Цитата
Работал с QFtp и никаких таких проблем не возникало. В семлах есть пример - скачивалка файлов, посмотри, авось поможет.
Авось этот глюк сервера?!

Возможно у сервера тоже есть какая то проблема однако, через FTP-клиент Тотал Коммандера я с ним прекрасно работаю. Если хочешь увидеть глюк QFtp, попробуй создать на ftp пользователя с e-mail в качестве логина и запросить любой существующий файл (иногда срабатывает, но чаще выдает ошибку) К сожалению, в семплах нет ни одного примера с авторизацией.
connect(ftp, SIGNAL(done(bool)), this, SLOT(done(bool)));
    ftp->connectToHost("ftp.some.ru");
    ftp->login("anonymous@some.ru");
    ftp->get("file",
             &file,
             QFtp::Binary);


Сообщение отредактировал grio - 7.4.2010, 4:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.4.2010, 4:56
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(grio @ 7.4.2010, 8:13) *
создать на ftp пользователя с e-mail в качестве логина
в тотале в качестве пароля предлагается электропочта, но не в качестве имени. Может всё таки не правильно использовать электропочту в имени пользователя?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 7.4.2010, 5:50
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 7.4.2010, 5:56) *
Цитата(grio @ 7.4.2010, 8:13) *
создать на ftp пользователя с e-mail в качестве логина
в тотале в качестве пароля предлагается электропочта, но не в качестве имени. Может всё таки не правильно использовать электропочту в имени пользователя?

Правильно или нет, но вот такой у меня хостинг провайдер...
Сейчас поставил Сербера на локальную машину - проблем с QFtp не наблюдаю.
Значит да, дело в удаленном сервере. И нашел пример фтп-клиента с авторизацией:
Исходники довольно хитрые, да и комменты на французском, что скорее мешает, чем помогает.
Но этот фтп-клиент качает с моего хостинга. Правда вместо %% загрузки показывает какую то шляпу. И после соединения, сперва возвращает пустой список файлов, а лишь по "CWD /" реальный. Но качает все же...
Возможно, надо делать паузу между командами серверу. Не пойму пока.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 7.4.2010, 8:01
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


grio,
по-моему надо читать протокол ftp, возможно есть как в bash`e какой-нить экран для передачи @ в имени в качестве символа а не разделителя. типа обратного слэша и проч.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 7.4.2010, 8:32
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(grio @ 7.4.2010, 5:13) *
QFtp работает с сервером отдельными командами. Сначала авторизуется, потом заходит в директорию, а только потом запрашивает файл.
QNetworkAccessManager пытается все сделать в одном запросе. Сперва фомирует строку ftp://login:pass@server/file из составляющих QUrl, а потом делает запрос. В этом как раз и проблема.

Так с помощью QNetworkAccessManager тоже можно сначала залогиниться а потом работать.

====добавлено====
вот вроде еще так можно попробовать ftp://login:pass#ftphost.ru/ но это тоже зависит от хоста
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 23:12