Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 04:24   #1
sanco
 
Регистрация: 17.03.2013
Сообщений: 8
По умолчанию Передача данных методом Post.

Подскажите как передать вот такую строку:
Цитата:
{"n":{"n":1},"t":1363994524329,"o": {"g":false,"o":{"bi":null,"ti":{"c" :1},"i":-1,"gi":{"m":false,"x":0,"y":0},"tci ":null,"d":null,"t":2,"c":{"s":null ,"f":null,"l":0}}},"u":136399264368 1,"q":[181,244,261,262,263],"g":249648,"r":27342}
Когда я её отсылаю и смотрю, что ушло в снифере, там получается вот такая фигня:
Цитата:
%7B%22n%22%3A%7B%22n%22%3A1%7D%2C%2 2t%22%3A1363994524329%2C%22o%22%3A% 7B%22g%22%3Afalse%2C%22o%22%3A%7B%2 2bi%22%3Anull%2C%22ti%22%3A%7B%22c% 22%3A1%7D%2C%22i%22%3A-1%2C%22gi%22%3A%7B%22m%22%3Afalse%2 C%22x%22%3A0%2C%22y%22%3A0%7D%2C%22 tci%22%3Anull%2C%22d%22%3Anull%2C%2 2t%22%3A2%2C%22c%22%3A%7B%22s%22%3A null%2C%22f%22%3Anull%2C%22l%22%3A0 %7D%7D%7D%2C%22u%22%3A1363992643681 %2C%22q%22%3A%5B181%2C244%2C261%2C2 62%2C263%5D%2C%22g%22%3A249648%2C%2 2r%22%3A27342%7D
Вот как я её передаю:
Цитата:
Data.Add('{"n":{"n":1},"t":13639945 24329,"o":{"g":false,"o":{"bi":null ,"ti":{"c":1},"i":-1,"gi":{"m":false,"x":0,"y":0},"tci ":null,"d":null,"t":2,"c":{"s":null ,"f":null,"l":0}}},"u":136399264368 1,"q":[181,244,261,262,263],"g":249648,"r":27342}');

s := Http.Post('http://207.182.137.162/ElvesCm/Segment00/segment.ashx',Data);
Data : TStringList
sanco вне форума Ответить с цитированием
Старый 23.03.2013, 12:41   #2
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Не кодируйте строчку
Lardes вне форума Ответить с цитированием
Старый 24.03.2013, 03:40   #3
sanco
 
Регистрация: 17.03.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Lardes Посмотреть сообщение
Не кодируйте строчку
можно для особо одарённых на пальцах показать, в каком месте я её кодирую и как этого избежать.
Могу догадаться, что строка кодируется, когда запихивается в TstringList, но как её передать без этого я не понимаю.
sanco вне форума Ответить с цитированием
Старый 24.03.2013, 05:03   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вы неправильно догадываетесь - виноват не stringlist, а idhttp, который по умолчанию преобразует передаваемую информацию. Найдите параметр options, отключите hoForceEncodeParams и попробуйте отправить запрос.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.03.2013, 11:30   #5
sanco
 
Регистрация: 17.03.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Вы неправильно догадываетесь - виноват не stringlist, а idhttp, который по умолчанию преобразует передаваемую информацию. Найдите параметр options, отключите hoForceEncodeParams и попробуйте отправить запрос.
Нет результат тот же.
Если передавать в таком виде, то строка уходит в нормальном ввиде, но добавляется поля "Parameter Name" и "Value"
Цитата:
Data.Add('={"n":{"n":1},"t":1362943054776,"o": {"u":0,"di":null,"t":1126624,"ti":{ "t":{"t":{"13":1}},"o":4,"r":null}, "o":903671},"u":1362941201957," q":[181,244,257,258],"g":1848819,"r":21286}');
sanco вне форума Ответить с цитированием
Старый 24.03.2013, 12:40   #6
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Если с инди такие проблемы, то значит время переходить на синапс
Lardes вне форума Ответить с цитированием
Старый 24.03.2013, 13:29   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
там получается вот такая фигня:
Ну и чем эта "фигня" не устроила? Обычная кодировка для запросов в интернете.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2013, 01:49   #8
sanco
 
Регистрация: 17.03.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну и чем эта "фигня" не устроила? Обычная кодировка для запросов в интернете.
Тем что сервер её не принимает
sanco вне форума Ответить с цитированием
Старый 25.03.2013, 09:01   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит проблема в сервере.
И как ты определил что не принимает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2013, 10:01   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Тем что сервер её не принимает
Та с чего бы это. URL кодирование - вообще-то общепринятый стандарт, браузеры в него преобразуют запрос и отсылают, поисковики вообще фанаты url-кодирования.

Не принимает, потому что вы MIME-type не указали что это URL ENCEDED данные. сам сервер никогда не пытается определить тип данных, ему о типе отправленных данных сообщать должен клиент.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача POST данных. lansh PHP 3 03.03.2013 16:59
Передача параметра методом POST manula PHP 3 04.02.2013 10:33
Передача html тегов в переменной методом POST Серж_ PHP 2 10.11.2010 17:19
Передача данных методом POST batusai PHP 2 30.10.2010 03:04
Передача параметров методом POST A_r_r_a_y PHP 3 08.03.2009 22:49