Показать сообщение отдельно
  #11  
Старый 12.12.2013, 15:58
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Taemin
IdHTTP тоже с JavaScript не дружит?
Меня сейчас озадачило два момента… Первый:
Код:
//===POST 2===
httpsend:=THTTPSend.Create;
httpsend.MimeType:='application/x-www-form-urlencoded';
httpsend.UserAgent:=('Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.61');
stream := TStringStream.Create('');
stream.WriteString('i=1770882&type=+');
httpsend.Document.LoadFromStream(stream);
httpsend.Cookies.Text:=str.Text;
httpsend.HTTPMethod('post','http://pikabu.ru/ajax/dig.php' );
httpsend.Free;

Даже когда передаешь ASCII-код символа + как #043 его всеравно нет.
Плюс никуда не делся - он превратился в пробел. Спецсимволы в нужно кодировать в url-формате:
Код:
stream.WriteString('i=1770882&type=a%2Bb'); // Получим два параметра: "i=1770882" и "type=a+b" 
или используй функцию EncodeURLElement.
Цитата:
Сообщение от Taemin
Второй:
Неясность с куками. Я использую для кук следующий код
Код:
str.Text:=httpsend.Cookies.Text;

и перед каждым запросом вставляю строку

Код:
httpsend.Cookies.Text:=str.Text;
Значит в "str.Text" пусто, так как я не вижу на скринах чтобы в левом окне вкладки "Cookies" были какие-то значения. Левое окно этой вкладки - это те куки которые мы посылаем, а правое окно это то что сервер нам присылает в ответ. Или лучше смотри вкладку "Raw Stream" - там видно в чистом виде то что мы отправляем и получаем.
Цитата:
Сообщение от Taemin
При этом снифер в Get запросе совсем ничего не видит

А два разных POST при этом имеет два разных кука... что-то работает не так как должно
У меня этот код работает. Попробуй для примера сделать такую замену:
Код:
httpsend.Cookies.Text := 'primer=55';
Ответить с цитированием