crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Залить jpg картинку, на одноклассники
Verus
  опции профиля:
сообщение 1.4.2009, 18:22
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 1.4.2009
Пользователь №: 656

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




Репутация:   0  


Суть в том что вроде бы заголовок сформировал если верить сниферу, но при попытке отправить файл в ответ получаю Bad Request.

_header = GetUploadHeader(urlHost, reqStr), _photos[0]);
_httpId = request(_header, _byteTosend);
_loop.exec();
QHttpRequestHeader GetUploadHeader(QString urlHost, const QString &request, const QString filePath)
{
    _byteTosend.clear();
    QFile userfile(filePath);
    if (!userfile.open(QFile::ReadOnly))
    {
        QMessageBox::information(0, "File Upload error",
            QString("Unable to open the file %1: %2.").arg(filePath).arg(userfile.errorString()));
    }
    setHost(urlHost, QHttp::ConnectionModeHttp);
    QHttpRequestHeader header("POST", request);
    header.setValue("Host", urlHost);
    header.setValue("Content-type", "multipart/form-data; boundary=---------------------------21974107111333");
    header.setValue("Cache-Control", "no-cache");
    header.setValue("Connection","Keep-Alive");
    _byteTosend.append("-----------------------------21974107111333\r\n");
    _byteTosend.append("content-disposition: form-data; name=\"st.filename\"; filename=\""+
        filePath+"\""+
        "\r\nContent-Type: image/jpeg\r\n\r\n");      
    _byteTosend.append(userfile.readAll());
    _byteTosend.append("\r\n-----------------------------21974107111333--\r\n");
    userfile.close();
    header.setContentLength(_byteTosend.length());
    return header;
}


Может я POST запрос сам формирую не правильно? Вот форма по которой происходит отправка файла:

<input value="Загрузить фотографию" onclick="..." type="submit" name="button_upload">
<input value="" id="field_filename" type="file" name="st.filename">
<form action="http://u10.odnoklassniki.ru/uploadImage?photoId=
jQa5VZyH5Xexs9SflOKHqNBJSBy75R7Dttt0xIGyw2Gw7wP0wTzpWTrnDJL5h%2FN8Dfj4Ylo8PdqO%0AHZ3aNMfoyFSAJ5bFOE5bOZ21sqnk3c0=
        &amp;returnUrl=http://wg24.odnoklassniki.ru/dk
        ?st.cmd=userEditPhoto
        &amp;st.photoIds=176090490981
        &amp;st.action=EditComment
        &amp;st.referer=userPersonalPhotos
        &amp;returnErrorUrl=http://wg24.odnoklassniki.ru/dk
                    ?st.cmd=userAddPhoto
                    &amp;st.referer=userPersonalPhotos" method="post" enctype="multipart/form-data">


Я в пост запросе указываю только эту строку как есть ничего не дописывая. Помогите кто чем может :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 1.4.2009, 19:34
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


А ты получешь передаешь кукисы?
Если нет, то это тоже нужно делать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Verus
  опции профиля:
сообщение 1.4.2009, 21:25
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 1.4.2009
Пользователь №: 656

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




Репутация:   0  


Дело не в кукисах, там в ссылке передается jsessionId.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 1.4.2009, 21:43
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


У меня почему-то одноклассники кукисы всегда сбрасывает и мне приходится вручную вводить логин и пароль при каждом заходе. Кроме того, я заметил, что еще какой-то их сервер ставит вторые кукисы.

Вообще еще javascript может ставить кукисы и если какой-то бот лазит по сайтам, то он эти кукисы не получит никогда, т.к. не умеет обрабатывать скрипты, а стало быть и не зайдет на сайт.

P.S.: народ, че за западло, внутри блока [ code][/ code] нельзья написать &аmp; (букву "a" поставил русскую спецом) ?

Сообщение отредактировал SABROG - 1.4.2009, 21:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.4.2009, 7:00
Сообщение #5


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

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

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




Репутация:   94  


SABROG, ты это в обратную связь напиши, там Багира заметит, а тут нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Verus
  опции профиля:
сообщение 2.4.2009, 8:44
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 1.4.2009
Пользователь №: 656

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




Репутация:   0  


Цитата(SABROG @ 1.4.2009, 22:43) *
У меня почему-то одноклассники кукисы всегда сбрасывает и мне приходится вручную вводить логин и пароль при каждом заходе. Кроме того, я заметил, что еще какой-то их сервер ставит вторые кукисы.

Вообще еще javascript может ставить кукисы и если какой-то бот лазит по сайтам, то он эти кукисы не получит никогда, т.к. не умеет обрабатывать скрипты, а стало быть и не зайдет на сайт.

P.S.: народ, че за западло, внутри блока [ code][/ code] нельзья написать &аmp; (букву "a" поставил русскую спецом) ?


Вполне хватает jsession, даже когда прога получает его, можно скопировать эту строку и в браузере откроется страница одноклассников без авторизации. Даже в хедере Set-Cookie содержится строка что куки истекают в 1904 году :)

P.S. мне казалось что &аmp; это просто "&", а не русская "а". Так то не западло :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.4.2009, 8:47
Сообщение #7


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

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

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




Репутация:   94  


Цитата(Verus @ 2.4.2009, 12:44) *
а не русская "а".
он про другое, про то что написал букву А в записи &аmp;, чтобы не проглатилась движком форума как html-сущьность
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Verus
  опции профиля:
сообщение 2.4.2009, 8:58
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 1.4.2009
Пользователь №: 656

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




Репутация:   0  


Ясно :)
Может все таки есть у кого мысли по поводу проблемы? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.4.2009, 9:33
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Verus @ 2.4.2009, 9:44) *
Вполне хватает jsession, даже когда прога получает его, можно скопировать эту строку и в браузере откроется страница одноклассников без авторизации.
В тот же броузер или в другом, в котором "чистенько"? :)

Хм, попробовал и правда так...

Сообщение отредактировал ViGOur - 2.4.2009, 9:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Verus
  опции профиля:
сообщение 2.4.2009, 9:54
Сообщение #10


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 1.4.2009
Пользователь №: 656

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




Репутация:   0  


Странное дело наблюдается - если нет этой строки
setHost(urlHost, QHttp::ConnectionModeHttp);


то в снифере видно POST запрос, если добавить ее, то нет и видно сразу ответ(400 Bad Request), хотя не совсем понятно почему так получается.

Заголовки сравнил в снифере, один в один и ничем не отличаются :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 8:02