0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|
1 | |
Synapse Delphi XE5 под мобильные приложения04.06.2017, 06:29. Показов 3404. Ответов 16
Метки нет (Все метки)
Здравствуйте!
Пишу мобильное приложение на Delphi XE5. Indy использую очень редко, в основном пользуюсь synapse. У меня в потоке отправляются post и get запросы, для этого я использую synapse. Дело в том, что приложение я почти дописал и при отладке в windows всё работает. Но когда я компилирую проект под Android, Delphi XE5 мне постоянно говорит, что synapse не найден. Использовал имеющийся у меня synapse, скачивал несколько разных версий - не хочет компилировать. Прошу направить меня в нужную сторону, переписывать проект под Indy очень не хочется.
0
|
04.06.2017, 06:29 | |
Ответы с готовыми решениями:
16
Разработка под iOS Delphi XE5 О работе приложения Text Layout Demo из дистрибутива Delphi XE5 Не увеличивается ширина ProgressBar'a (Delphi XE5 разработка под Android) вакансия программиста под мобильные приложения и не только |
04.06.2017, 08:09 | 2 |
если вы планируете писать под мобилы, то вам нужна версия не ниже Seattle и не выше (на тек. момент) Berlin Upd 2
так что уже тут вас ждет разочарование а в указанных версиях есть родной нативный THttpClient, на который и нужно все переписать это несложно
1
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|
04.06.2017, 22:22 [ТС] | 3 |
Спасибо за ответ. Все говорят, что это очень глючный и тяжёлый компонент, особенно при использовании его в потоке, по этому мне не хотелось его использовать. Ну раз сказали, придётся переписывать. Когда закончу, возможно отпишусь.
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|
05.06.2017, 23:52 [ТС] | 5 |
И в правду, я с чего взял, что речь идёт о TIdHTTP. Даже уже переписал весь проект под него и у меня возникла проблема с ssl на android. Сейчас чуть-чуть одумался, установил Delphi XE8 и стал переписывать используя THttpClient. И меня появилась новая проблема, я не знаю, как добавить свои заголовки, например "X-Requested-With: XMLHttpRequest". Не подскажите?
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|
06.06.2017, 11:16 [ТС] | 7 |
Спасибо, установил Delphi 10, почти всё работает. Почему-то не удаётся изменить Content Type при запросе. Изменяю так:
"HTTPClient.ContentType := 'application/json';", а он как был "application/x-www-form-urlencoded; charset=UTF-8", так и остаётся. Проверяю этой программой - "http analyzer". Может я не правильно задаю ContentType или здесь есть свои хитрости?
0
|
06.06.2017, 12:38 | 8 |
всегда есть хитрости.
нужно трассировать в отладчике сам вызов Get или Post, и смотреть, где переустанавливается значение ContentType исходники же в наличии Может, нужно httpClient.Request.ContentType ? наизусть не скажу
1
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
||||||
06.06.2017, 17:28 [ТС] | 9 | |||||
Ну, не знаю. Не удаётся мне Content Type изменить.
Использую примерно такой код:
0
|
06.06.2017, 21:31 | 10 | ||||||||||
2
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|
08.06.2017, 21:09 [ТС] | 11 |
Спасибо за пример кода, но Content Type не изменяется. Может во мне проблема?
0
|
08.06.2017, 21:35 | 12 | ||||||||||
определенно))
чуть изменим коды
1
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|||||||||||||||||||||
09.06.2017, 11:11 [ТС] | 13 | ||||||||||||||||||||
Я в php не селён, но используя:
И используя этот код:
И по этому, даже если вы в делфи укажите такой Content-Type:
Я посмотрел в программе http analyzer, какие заголовки отправляет делфи, и он всё равно отправлял "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
0
|
09.06.2017, 12:28 | 14 |
вообще, сервер должен анализировать заголовок и отправлять данные в запрошенном формате
если умеет/хочет если сервер точно уверен, что должен вернуть json, можно ничего не разбирать и просто приделать нужный заголовок, как я и сделал сейчас по поводу что за заголовки отправляет делфи, нужно действительно покопаться в коде. нет пока возможности
1
|
10.06.2017, 21:06 | 15 | |||||||||||||||
Сообщение было отмечено zolotarevsky как решение
Решение
смотрим в код
немного смеёмся )) они вообще не используют введенные заголовки )))) но если вызывать вот этот метод пост
итого сделал вот так: Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
результат
1
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 10
|
|||||||||||
13.06.2017, 11:53 [ТС] | 16 | ||||||||||
Спасибо, за приведенный код, но всё оказалось на много проще.
Обратился я к форуму stackoverflow и мне там сказали: У HttpClient есть 4 перегруженных (overload) Post метода:
Таким образом, вам нужно использовать первый или третий метод, если вы хотите отправлять сырые данные с указанием своего Content-Type. Пример, с использованием третьего метода:
0
|
13.06.2017, 15:17 | 17 |
ну я это и написал собственно
нужно использовать Post(url, stream, stream, headers) но это совсем не очевидно данные "как есть" это ни разу не описание формата данных. по стандарту к ним всяко должен идти заголовок и заменять его своим - это как-то криво совсем. а не использовать то что вводит программист в CustomHeaders вообще - это дикий треш )))
0
|
13.06.2017, 15:17 | |
13.06.2017, 15:17 | |
Помогаю со студенческими работами здесь
17
Как с помощью Rad Studio XE5 писать приложения под Android? Delphi XE5 разработка под Android. Как получить видео с AUX входа? Посоветуйте хорошую лит-ру для того,чтобы научиться писать приложения под мобильные устройства Как "растянуть" шаблон под мобильные приложения? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |