Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.10.10;
Скачать: CL | DM;

Вниз

Вопрос про POST   Найти похожие ветки 

 
vegarulez ©   (2008-11-06 19:14) [0]

Всем доброго времени суток.
Вопрос таков- почему когда отправляю на сервер запрос с помощью IdHTTP в формате:

STR_SEND.Text:="a=1&b=2";
STR_SEND.SaveToStream(Source);
IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
IdHTTP1.Post("http://trampampam", Source, Response);


то параметр b на сервер приходит параметр с переносом каретки
т.е. на сервере параметр разбирается как 2#$D#$A
если же сделать вот так(не придумал ничего оригинальнее, как с этим бороться, просто ввёл перенос на следующий параметр, чтобы он был как бы с переносом...):


STR_SEND.Text:="a=1&b=2&";
STR_SEND.SaveToStream(Source);
IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
IdHTTP1.Post("http://trampampam", Source, Response);


то придёт то что нужно , т.е. 2

Народ... помогите... в чём тут дело?


 
Сергей М. ©   (2008-11-06 20:18) [1]


> STR_SEND


Это что, TStringList ?
А какой практический смысл в его использовании в дан.случае ?


 
Slym ©   (2008-11-07 04:48) [2]

STR_SEND.Values["a"]:="1";
STR_SEND.Values["b"]:="2";
IdHTTP1.Post("http://trampampam", STR_SEND, Response);


 
vegarulez ©   (2008-11-07 20:55) [3]


> Сергей М. ©   (06.11.08 20:18) [1]

Не знаю как по другому stream сделать.


> Slym ©   (07.11.08 04:48) [2]


Хочу понять почему через стрим так происходит.
Через Tstrings попробую тоже ради интереса посмотрю, что получится. Но с tgstrings не хочу делать - наелся, делаю со стримом... )


 
Palladin ©   (2008-11-07 21:36) [4]

что то ты хреново хочешь понять... куда копать - очевидней некуда...


 
vegarulez ©   (2008-11-08 16:32) [5]

Slym ©   (07.11.08 04:48) [2]
Это же мультипарт.

Palladin ©   (07.11.08 21:36) [4]
По существу плз. Эмоции можно оставить при себе.


 
Сергей М. ©   (2008-11-08 16:54) [6]


> Не знаю как по другому stream сделать


Что значит "stream сделать" ?

SaveToStream не "делает stream" - он просто записывает данные в указанный стрим начиная с его тек.позиции.

s: string;

s := "a=1&b=2&";
Source.WriteBuffer(PChar(s)&, Length(s) + 1);


 
Slym ©   (2008-11-10 05:54) [7]

vegarulez ©   (08.11.08 16:32) [5]
Это же мультипарт

какой мультипарт?
"application/x-www-form-urlencoded"

vegarulez ©   (07.11.08 20:55) [3]
Не знаю как по другому stream сделать.

глянь в сторону TStringStream


 
cerber   (2008-11-16 12:19) [8]

Вронятійле рабочий кусок
//создаем поток mem0 для записи принятых данных
mem0:=tmemorystream.Create;
//создаем стринглист для параметтров пост запроса
strl:=tstringlist.Create;
//заполняем пост-запрос нужными паратмерами
strl.Add("a=1");
strl.Add("b=2");
// отправляем пост-зарос и одновременно получаем ответ сервера в поток mem0
IdHTTP1.Post("http://trampampam", strl,mem0);
//уничтожаем стринглист  - если уже не нужен
strl.Free;
//указатель потока в начало - подготовка к четнию
mem0.Position:=0;
//грузим содержимое потока в memo1
if mem0.Size>0 then
  memo1.Lines.LoadFromStream(mem0)
else
memo1.text:="Нет данных";
//уничтожаем поток- если уже не нужен
mem0.free;


 
cerber   (2008-11-16 12:21) [9]

"Вронятійле" -))) это читать как "Вроде..."



Страницы: 1 вся ветка

Текущий архив: 2010.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
3-1246004813
kudatsky
2009-06-26 12:26
2010.10.10
Проблемма с функцией CAST()


4-1240850870
AndreyRus
2009-04-27 20:47
2010.10.10
hfile собственного процесса


15-1278780157
Jeer
2010-07-10 20:42
2010.10.10
Вот и я дошел до этой жизни..


15-1278925541
belartvlad29
2010-07-12 13:05
2010.10.10
Как запустить Delphi2010-программу(exe-шник) на другом компьютере


2-1279206478
AKE
2010-07-15 19:07
2010.10.10
TBitmap и StreamReadError