Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 01.06.2009, 13:31   #1
minibt
AnyKey`щик
 
Регистрация: 27.03.2007
Сообщений: 13
Написано 5 полезных сообщений
(для 29 пользователей)
Смущение Lib_proweb - полноценная работа с http! Рабочий POST!!!

Lib_proweb - работа с http. Перекодировка для русского языка. Возможность загрузки данных в отдельном потоке. Прерывание загрузки с получением загруженной части. Полностью рабочий метод POST!!! Вывод ошибок работы. Кодирование Base64. Распаковка GZIP потоков (сейчас только LZ77).

Для создания, соединения, настройки, закрытия

procedure open(url: String);
Создает соединение с указаным url.

procedure set_property(key, value: string);
Устанавливает свойство key c значением value.

procedure set_method(s: String);
Метод GET или POST

procedure set_body(s: String);
Устанавливает текст запроса для метода POST

function request(): integer;
Устанавливает соединение и возвращает ответ сервера.

function get_field(key: String): string;
Возвращает значение заголовка по названию key от сервера.

function get_fieldvalue(int s): string;
Возвращает значение заголовка по индексу или пустую строку, если индекс превышен.

function get_fieldkey(int s): string;
Возвращает название заголовка по индексу или пустую строку, если индекс превышен.

function get_cookie(): string;
Возвращает ВСЕ cookie одной строкой.

procedure close();
Закрывает соединение, очищает все данные.

Для установленного соединения

function get_data_bg(): integer;
Возвращает значение состояния загрузки данных.
0 - загрузка данных еще продолжается.
1 - загрузка данных окончена. Данные могут быть получены через get_data() или get_stream()

procedure get_data_stop();
Останавливает процесс загрузки данных. Закрывает соединение, а загруженные данные можно получить через get_stream();

function get_stream(): string;
Возвращает значение входного потока. Все данные которые загружены на данный момент.

function get_data(): string;
Ожидает окончания загрузки всех данных и возвращает загруженные данные.
Получение больших данных может занимать много времени, программа будет простаивать, лучше использовать get_data_bg или get_stream.

Легкое соединение!

procedure q_property(key, value: string);
Устанавливает свойство key c значением value для функции q_request.

function q_request(url, method, body, gz: string): integer;
Создает соединение с url, методом method и телом body, вспомогательным параметром gz и возвращает ответ сервера.
Заголовки предварительно установить с помощью q_property.
Параметр gz может иметь слудующие значения:
"gzip" - если сервер поддерживает сжатие, загружает данные в сжатом виде gzip, get_datа вернет распакованные данные, в случае ошибки распаковки ничего.
"auto" - аналогично gzip, но в случае ошибки распаковки автоматически перезагрузить указанный url в несжатом виде.
"none" - используется обычная загрузка без сжатия.
Также автоматически определяет кодировку и перекодирует при возможности входные данные.
Поддерживает UTF-8, и кириллические русские Windows-1251, ISO-8859-5, MacCyrillic, KOI8-R.
Функия поддерживает автоматическую переадресацию.

function q_get_uri(): string;
Возвращает URI соединения, например, в случае переадресации URL. Или пустую строчку.

Вспомогательные

function get_error(): string;
После выполнения процедуры, возвращает описание ошибки, или пустую строчку если нет ошибки.

function gunzip(gz_d: string): string;
Возвращает распакованный архив из строки gz_d.

function gz_ratio(): integer;
После распаковки возвращает степень сжатия.

function str2rs(s: String): resource;
Переводит строчку s в ресурс.

function rs2str(res: resource): string;
Переводит ресурс res в строчку.

function encode(s, e, def: String): string;
Берет строчку s в кодировке e (значения "utf-8", "Windows-1251", "ISO-8859-5","MacCyrillic", "KOI8-R") и возвращает в Unicode.
В случае невозможности перекодировки возвращает строчку def.

function base64_encode(String encoded): string;
Возвращает закодированную строку encoded в формате base64.

function base64_decode(String decoded): string;
Возвращает раскодированную строку decoded в формате base64.

Cм. пример. Метод POST. Подключение к http://forum.boolean.name/ и вход
Возможны и недочеты ошибки, пожелания принимаются.
Вложения
Тип файла: zip Lib_proweb.zip (10.8 Кб, 819 просмотров)
Тип файла: zip ProWeb_Example.zip (8.2 Кб, 775 просмотров)

Последний раз редактировалось minibt, 01.06.2009 в 19:12. Причина: Исправлена ошибка ожидания и прерывания загрузки
(Offline)
 
Ответить с цитированием
Эти 21 пользователя(ей) сказали Спасибо minibt за это полезное сообщение:
AVIZO (01.06.2009), Bananbl4 (28.03.2010), boydjon (16.07.2010), Bruteo (29.09.2009), Egor Rezenov (19.03.2011), german1010 (22.07.2009), GRAY_WOLF (01.06.2009), KiberPUNK (15.03.2012), MedB@T (06.07.2011), MotoMustanger (08.10.2010), neon (25.08.2012), nil0q (14.06.2013), odd (01.06.2009), Phantom (01.07.2009), Piligrim (02.06.2009), Pyth_ON (26.06.2009), Richik (02.06.2009), Rock2roll (05.08.2010), scimitar (20.06.2010), Skythrone (15.06.2009), ViNT (01.06.2009)
Старый 01.06.2009, 19:11   #2
AVIZO
Нуждающийся
 
Регистрация: 16.11.2006
Сообщений: 56
Написано 9 полезных сообщений
(для 29 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Хороший человек
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 11:26   #3
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Ну вот совсем никак не распаковывается gzip-ованная строка.
Я уж по-разному пробовал.
Вызываю в мидлете gunzip(string) и получаю "Error in GZip".

Хотя строчка реально правильно запакована в GZip (с помощью стандартных функций PHP).

Не подскажете, в чём может быть проблема?
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 13:07   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Ещё неплохо бы добавить функцию по перекодировке потенциально опасных для MySQL и MS SQL баз данных символов (", ', |, ` и др.). Да и символ & открыто передавать нельзя - это приведет к ошибке. Нужно заменять такие символы на сочетание типа %26 для знака & и т.д.
(Offline)
 
Ответить с цитированием
Старый 01.07.2009, 17:55   #5
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,139
Написано 702 полезных сообщений
(для 1,737 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Ещё неплохо бы добавить функцию по перекодировке потенциально опасных для MySQL и MS SQL баз данных символов (", ', |, ` и др.)
Нее, этим не браузер должен заниматься, а сервер.
Да и символ & открыто передавать нельзя - это приведет к ошибке. Нужно заменять такие символы на сочетание типа %26 для знака & и т.д.
Символ & открыто передавать нельзя. Ещё символ "равно" нельзя. Пробел нужно менять на "плюс", остальные символы не a-z0-9 желательно перекодировать в %xx, но обычно и так прокатывает вроде, гг. А вообще, может джава машина сама это делает?
(Offline)
 
Ответить с цитированием
Старый 01.08.2009, 09:11   #6
minibt
AnyKey`щик
 
Регистрация: 27.03.2007
Сообщений: 13
Написано 5 полезных сообщений
(для 29 пользователей)
Re: Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Сообщение от Skythrone Посмотреть сообщение
Ну вот совсем никак не распаковывается gzip-ованная строка.
Я уж по-разному пробовал.
Вызываю в мидлете gunzip(string) и получаю "Error in GZip".

Хотя строчка реально правильно запакована в GZip (с помощью стандартных функций PHP).

Не подскажете, в чём может быть проблема?
Я использовал алгоритм быстрой распаковки LZ77, возможно сервер пакует в LZ78 или другим вариантом, также уже замечено на некоторых телефонах не распаковывает, или я ошибся или реализация java-машин такая на телефонах, попробую исправить, а щас только одно воспользуетесь стронним распаковщиком.
(Offline)
 
Ответить с цитированием
Старый 18.08.2009, 20:10   #7
Richik
Нуждающийся
 
Аватар для Richik
 
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Скачиваю с инета статическую картинку, в фотрмате GIF89. Как ее посмотреть на экране?, и можно ли обойтись без сохранения в ее в телефоне?

На экране вот эта картинка " " отображается так:

GIF89a  жg рстэээшщщчшшццчноп·»Б*±¶Ј©°ъъъщъъёЅГпрс»АЕьььђ•њ›*§і·јуууЋ’™ххцz~†Њђ—x|ѓќЈЄЉЏ–БЕКёјБ»ѕВррт—›ЎҐ©Їґ·»*І№шшщ”™*№ѕГ№»їсстДЕЙуффЇі№¤¦¬лмнЗЙМъъы™ћҐ»їДќЎ¦„€Џ~ѓЉґёѕсту°µ»ёЅВмноµ№ѕІ·Ѕі·ЅЅБЖттуw{ѓ{Ђ‡ъыыщщщ±¶јКОУЅБЗ‚…Њі·»рсс—њЈ‡Њ“±ґ№ффхѕВЗопрГЗЛћ¤¬—›ўЁ*ґежи°ґ№“—ћ*¦**Ґ«ѓ€Џ€Њ“стттуу±µ»©*І}‚‰ТУЦ*°¶ђ•›ннпыыы·јВєѕДИМРҐ«Іяяяяяя                                                                        !щ  g ,       іЂ]M$63ZRI,-ggd’““B^4Џ
c›њњ
 ЏKf¤Ґ¦ &ЏCf!T.G#0';f PbїАїO/»NeИЙКfL9¦СfS8fAf"YF+Qf_Ef5f	
(Xf%[UfaaлJ fЏnи0 Ђѓ	Ђи3sеQЃ
вЈ@Ђ™ЏАђfЉИ#d@bE.фP ;
(Offline)
 
Ответить с цитированием
Старый 19.08.2009, 10:40   #8
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Сообщение от Richik Посмотреть сообщение
Скачиваю с инета статическую картинку, в фотрмате GIF89. Как ее посмотреть на экране?, и можно ли обойтись без сохранения в ее в телефоне?

На экране вот эта картинка " " отображается так:

GIF89a  жg рстэээшщщчшшццчноп·»Б*±¶Ј©°ъъъщъъёЅГпрс»АЕьььђ•њ›*§і·јуууЋ’™ххцz~†Њђ—x|ѓќЈЄЉЏ–БЕКёјБ»ѕВррт—›ЎҐ©Їґ·»*І№шшщ”™*№ѕГ№»їсстДЕЙуффЇі№¤¦¬лмнЗЙМъъы™ћҐ»їДќЎ¦„€Џ~ѓЉґёѕсту°µ»ёЅВмноµ№ѕІ·Ѕі·ЅЅБЖттуw{ѓ{Ђ‡ъыыщщщ±¶јКОУЅБЗ‚…Њі·»рсс—њЈ‡Њ“±ґ№ффхѕВЗопрГЗЛћ¤¬—›ўЁ*ґежи°ґ№“—ћ*¦**Ґ«ѓ€Џ€Њ“стттуу±µ»©*І}‚‰ТУЦ*°¶ђ•›ннпыыы·јВєѕДИМРҐ«Іяяяяяя                                                                        !щ  g ,       іЂ]M$63ZRI,-ggd’““B^4Џ
c›њњ
 ЏKf¤Ґ¦ &ЏCf!T.G#0';f PbїАїO/»NeИЙКfL9¦СfS8fAf"YF+Qf_Ef5f	
(Xf%[UfaaлJ fЏnи0 Ђѓ	Ђи3sеQЃ
вЈ@Ђ™ЏАђfЉИ#d@bE.фP ;
Есть либа для показа изображений не из ресурса, а "по-ссылке". Тебе нужно использовать ее для корректного отображения картинки
Вложения
Тип файла: zip Image.zip (9.0 Кб, 317 просмотров)

Последний раз редактировалось <-TzX->, 19.08.2009 в 10:53.
(Offline)
 
Ответить с цитированием
Старый 07.02.2010, 14:29   #9
IvanSCM
AnyKey`щик
 
Аватар для IvanSCM
 
Регистрация: 06.02.2010
Адрес: KZ
Сообщений: 16
Написано 5 полезных сообщений
(для 49 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

на сервер не передаются параметры, что GET что POST

program NewProject3;
uses proweb;
var itemId, rc, id : integer; 
     cmdNext : command; 
     cmdQuit : command; 
     name, str : string; 

begin 
  ShowForm; 
    
  itemId := FormAddTextField('Введите текст:', '', 20, TF_ANY); 
    
  cmdNext := CreateCommand('Готово', CM_OK, 1); 
  AddCommand(cmdNext); 
    
  repeat until GetClickedCommand = cmdNext; 
    
  name := FormGetText(itemId);

	ClearForm;
	ShowForm;
	
	id:= FormAddString('Ждите посылка запроса...');
	q_property('Accept', '*/*');
q_property('Accept-Language', 'ru');
q_property('Content-Type', 'application/x-www-form-urlencoded');
  
rc:=q_request('http://talk.servehttp.com', GET, 'foo=bar&name=' + name, 'none');
if get_error='' then str:=get_data; 
if get_error='' 
      then begin
					  id:= FormAddString('Ответ: '+ str);
					 end;
		  else id:= FormAddString(' Ошибка: '+get_error);
close;

  cmdQuit := CreateCommand('Выход', CM_EXIT, 1); 
  AddCommand(cmdQuit); 
  repeat until GetClickedCommand = cmdQuit;
  
  end.
__________________
Знаки препинания ставьте как Вам удобно.
С уважением, IvanSCM.
(Offline)
 
Ответить с цитированием
Старый 07.02.2010, 19:05   #10
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

русские буквы и часть символов нельзя передать, нужно их кодировать, может в этом дело?
(Offline)
 
Ответить с цитированием
Старый 08.02.2010, 06:18   #11
IvanSCM
AnyKey`щик
 
Аватар для IvanSCM
 
Регистрация: 06.02.2010
Адрес: KZ
Сообщений: 16
Написано 5 полезных сообщений
(для 49 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

даже если составить запрос:
rc:=q_request('http://talk.servehttp.com', GET, 'foo=bar', 'none');
параметры не приходят...
__________________
Знаки препинания ставьте как Вам удобно.
С уважением, IvanSCM.
(Offline)
 
Ответить с цитированием
Старый 08.02.2010, 06:21   #12
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

если ты ГЕТ используешь, то можно и без библиотеки, просто к адресу прибавляешь ?foo=bar
(Offline)
 
Ответить с цитированием
Старый 08.02.2010, 07:01   #13
IvanSCM
AnyKey`щик
 
Аватар для IvanSCM
 
Регистрация: 06.02.2010
Адрес: KZ
Сообщений: 16
Написано 5 полезных сообщений
(для 49 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

аха GET, POST. гет я поставил для примера, а так мне нужно будет передавать много русского текста и будет POST. но он тоже не работает...

а какой функцией кодировать?
__________________
Знаки препинания ставьте как Вам удобно.
С уважением, IvanSCM.
(Offline)
 
Ответить с цитированием
Старый 08.02.2010, 19:05   #14
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

вроде кто-то писал какие-то библиотеки, но лично я советую просто посмотреть как это делает браузер и сделать самому также)) (% рисовать)
(Offline)
 
Ответить с цитированием
Старый 08.02.2010, 23:25   #15
Demon_12
AnyKey`щик
 
Регистрация: 08.02.2010
Сообщений: 7
Написано одно полезное сообщение
Ответ: Lib_proweb - полноценная работа с http! Рабочий POST!!!

Я вот посмотрел как делает браузер. Все поля повторил. возвращает код 411 Length Request.
Но я же явно выставляю
web.set_property('Content-Length','90');
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lib_web: работа с http, корректная обработка POST Piligrim Библиотеки 41 14.11.2013 14:21
Работа с http... помогите! Trazzy MidletPascal 15 25.05.2009 07:27
http POST запрос Aluk Основной форум 2 24.09.2007 09:18


Часовой пояс GMT +1, время: 16:22.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com