forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Эмулятор (http://forum.boolean.name/showthread.php?t=6079)

Seregakz 05.07.2008 07:04

Эмулятор
 
Парсю веб страничку библиотекой веб!
При использовании на эмуляторе всё пашет а на сотке нокия 6681 нефика((
вчём может быть трабла?

odd 05.07.2008 08:00

Ответ: Эмулятор
 
Что-то я там не видел ни одной функции для парсинга :4to:
Можно поподробнее?

Seregakz 05.07.2008 08:26

Ответ: Эмулятор
 
Цитата:

Сообщение от odd (Сообщение 81746)
Что-то я там не видел ни одной функции для парсинга :4to:
Можно поподробнее?

PHP код:

Program NewProjectgf;
uses web;

var         
connection integer;
                
ddresultat string;    

begin
    dd 
:= 'go';    
    
connection := web.open('http://zzzz.rr/zzz.php?dd=' dd);

    
web.set_method('GET');                    
    
web.set_property('Host''zzzz.rr');
    
web.set_property('Accept''text/html');
    
web.set_property('Accept-Charset''UTF-8');
    
web.set_property('Accept-Encoding''deflate');
    
web.set_property('Accept-Language''ru');
    
web.set_property('User-Agent''MP Browser');
                            
        if 
web.send 200 then
                    begin
                                                    
                            
                            DrawText
(web.get_response,0,0);
                            
repaint;
                            
delay(5000);
                            
                        
end;        
    
                
             else

                    
begin
                                    
                    DrawText
('Ошибка сервера.',0,0);
                    
repaint;
                    
delay(5000);
                                    
                    
end;
        
        
web.close;
End

Вот web.get_response на эмуляторе выводит то что находится на веб странице а на сотке нефика((

GOODBYTE 05.07.2008 10:52

Ответ: Эмулятор
 
вот с web.get_response у меня тоже такие проблемы.
Причем не работает как на эмуляторе, так и на телефоне 6260.

Seregakz 05.07.2008 11:17

Ответ: Эмулятор
 
Гы перепробовал все способы эфекта 0 ёпть :''((
Главное на эмуле всё ок, а на трубах 0 эфекта(

Piligrim 05.07.2008 11:20

Ответ: Эмулятор
 
Если используется метод GET, то нормально работают и встроенные функции.

Seregakz 05.07.2008 11:39

Ответ: Эмулятор
 
Цитата:

Сообщение от pilgrim (Сообщение 81750)
Если используется метод GET, то нормально работают и встроенные функции.

пример плз!

jimon 05.07.2008 11:40

Ответ: Эмулятор
 
Код:

connection := web.open('http://zzzz.rr/zzz.php?dd=' + dd);
.....
if web.send = 200 then

я не знаю как на MP, но мне ети строчки кажутся не правильными

Seregakz 05.07.2008 12:35

Ответ: Эмулятор
 
Блин всё перепробовал подскажите чёнить плиз (((((((((

ViNT 05.07.2008 14:43

Ответ: Эмулятор
 
Цитата:

Сообщение от jimon (Сообщение 81752)
Код:

connection := web.open('http://zzzz.rr/zzz.php?dd=' + dd);
.....
if web.send = 200 then

я не знаю как на MP, но мне ети строчки кажутся не правильными

Да тут-то как раз вроде бы все правильно.

Seregakz 05.07.2008 21:57

Ответ: Эмулятор
 
Ток попробовал пример:
PHP код:

var connhttp
      
htmlBodystring
      
contentTypestring
  
begin 
    
if not openHttp(conn'http://zzz.ru/1.php'then halt
    
setHttpMethod(connGET); 
    
addHttpHeader(conn'User-agent''MIDletPascal browser'); 
    if 
sendHttpMessage(conn) <> 200 then halt
    
htmlBody := getHttpResponse(conn); 
    
contentType := getHttpHeader(conn'Content-type'); 
    
closeHttp(conn); 
  
end

Нефика не пашет! если указать файл а не пхп стрницу то считывает!
http://zzz.ru/1.php - не пашет
http://zzz.ru/1.txt - пашет

В чём трабла народ?

odd 06.07.2008 03:37

Ответ: Эмулятор
 
Вложений: 1
Фиг его знает. У себя на SE пробовал - пашет. А с Nokia какие-то траблы.

Seregakz 06.07.2008 04:47

Ответ: Эмулятор
 
Цитата:

Сообщение от odd (Сообщение 81777)
Фиг его знает. У себя на SE пробовал - пашет. А с Nokia какие-то траблы.

теперь тестировал на 6600 6681 N73 результат у всех одинаковый ((
не пашет чёт на нокиях

GOODBYTE 06.07.2008 05:48

Ответ: Эмулятор
 
Цитата:

я не знаю как на MP, но мне ети строчки кажутся не правильными
Мне по началу точно так же казалось, но всё таки все работает, только кроме web.get_response. Стандартные средства не использовал пока.

Цитата:

Нефика не пашет! если указать файл а не пхп стрницу то считывает!
http://zzz.ru/1.php - не пашет
http://zzz.ru/1.txt - пашет

В чём трабла народ?
судя по коду, то ошибка в том, что ты не все заголовки указываешь.
У тебя так наврятли 200 вернёт, скорее 400.
(если конечно MP сам что-то не вставит в отправляемые заголовки)

Seregakz 06.07.2008 06:12

Ответ: Эмулятор
 
Цитата:

Сообщение от GOODBYTE (Сообщение 81782)
Мне по началу точно так же казалось, но всё таки все работает, только кроме web.get_response. Стандартные средства не использовал пока.



судя по коду, то ошибка в том, что ты не все заголовки указываешь.
У тебя так наврятли 200 вернёт, скорее 400.
(если конечно MP сам что-то не вставит в отправляемые заголовки)

а как над нук подскажи?? вот так я делую:

PHP код:

if not openHttp(conn'http://zzz.zz/zzz.php'then halt
    
setHttpMethod(connGET); 
    
addHttpHeader(conn'User-agent''M16'); 
   if 
sendHttpMessage(conn) <> 200 then halt
    
delay(1000);
    
htmlBody := getHttpResponse(conn); 
    
contentType := getHttpHeader(conn'Content-type'); 
    
closeHttp(conn); 

Исправь как над плз!
--------------

короч на Нокии почемуто

htmlBody := getHttpResponse(conn); непашет

хотя contentType := getHttpHeader(conn, 'Content-type'); пашет


------------------

на сотке и на эмуле после выполнения запроса sendHttpMessage(conn) равен: -1

GOODBYTE 06.07.2008 08:00

Ответ: Эмулятор
 
оказывается что MP сам что ему нужно вставляет.. :)

Но почему-то еще при выборе метода,
PHP код:

setHttpMethod(connGET); 

в логах сервера записывается что идет метод POST, хотя выбран GET..
Почему, вот загадка..

Код:

# лог-файл доступа к серверу
127.0.0.1 - - [06/Jul/2008:05:43:14 +0400] "POST / HTTP/1.1" 200 18

Хотя вывода так и не было..

Вот это уже загадка самого MP :)

ViNT 06.07.2008 16:11

Ответ: Эмулятор
 
А с переделанным классом H делать не пробовали?

Seregakz 06.07.2008 17:31

Ответ: Эмулятор
 
Цитата:

Сообщение от GOODBYTE (Сообщение 81784)
оказывается что MP сам что ему нужно вставляет.. :)

Но почему-то еще при выборе метода,
PHP код:

setHttpMethod(connGET); 

в логах сервера записывается что идет метод POST, хотя выбран GET..
Почему, вот загадка..

Код:

# лог-файл доступа к серверу
127.0.0.1 - - [06/Jul/2008:05:43:14 +0400] "POST / HTTP/1.1" 200 18

Хотя вывода так и не было..

Вот это уже загадка самого MP :)

Неважен какой запрос главное чтоб он текст простой со странички считал!



ViNT дайка класс H

Seregakz 06.07.2008 18:53

Ответ: Эмулятор
 
Пойдём другим путём))
Кто найдёт решение данной проблемы получит 5 WMZ :rolleyes:

ViNT 06.07.2008 19:22

Ответ: Эмулятор
 
Вложений: 1
Вот переделанный класс H.
Вроде-как там устранены какие-то ошибки.
Класс нужно добавлять в архив мидлета после компиляции.

Seregakz 06.07.2008 20:16

Ответ: Эмулятор
 
даже с этим класом 0 эффекта ((

Piligrim 06.07.2008 22:37

Ответ: Эмулятор
 
мдя, Нокиа форевер :tongue:

Seregakz 07.07.2008 00:12

Ответ: Эмулятор
 
Короче! КТО знает как решить проблему получит 10 WMZ =)

jimon 07.07.2008 01:15

Ответ: Эмулятор
 

за 100$ я готов изучать midlet pascal и узнать в чем проблемма :lol:

Seregakz 08.07.2008 01:39

Ответ: Эмулятор
 
Народ в МП мона сачать файл? а то придумал алгоритн типа скачиваем файл потом его открываем считываем строку и выдаём текст!!!

ViNT 08.07.2008 02:17

Ответ: Эмулятор
 
Все равно придется работать по протоколу http.

Seregakz 08.07.2008 04:13

Ответ: Эмулятор
 
Цитата:

Сообщение от ViNT (Сообщение 81890)
Все равно придется работать по протоколу http.

Да без разницы лижбы файл с текстом скачивал!

Seregakz 08.07.2008 06:12

Ответ: Эмулятор
 
Короч ответ найден! хотя тупо но какже без этого! типа посылаем запрос а пхп этот запрос сохранёем в тхт а потом 2-м запросом его читаем)

Seregakz 08.07.2008 07:21

Ответ: Эмулятор
 
Помоите плз! проблемы с кодировой! если на сайте русскими буквами ответ то он выводит каракулями! тут лазил нефика рабочего примера не нашол(

odd 08.07.2008 08:05

Ответ: Эмулятор
 
Цитата:

Сообщение от Seregakz (Сообщение 81889)
Народ в МП мона сачать файл? а то придумал алгоритн типа скачиваем файл потом его открываем считываем строку и выдаём текст!!!

Я уже выкладывал исходники примера Updater.jar. Программа скачавает из интернета TXT файл, читает его и делает выводы на основе полученных данных.

Цитата:

Помоите плз! проблемы с кодировой! если на сайте русскими буквами ответ то он выводит каракулями! тут лазил нефика рабочего примера не нашол(
Выкладывали уже тысячу раз. Скорее всего нужно переделывать кодировку из Win1251 в UTF-8. Алгоритм примерно такой:

Код:

Function Encode(a: string): string;
var        len, ch: integer;
                s: string;
begin
        s:=''; len:=Length(a)-1;
        for i:=0 to len do begin ch:=ord(GetChar(a,i)); if ch>122 then s:=s+chr(ch+1104) else s:=s+chr(ch); end;
        Encode:=s;
end;


Seregakz 08.07.2008 08:19

Ответ: Эмулятор
 
Цитата:

Сообщение от odd (Сообщение 81898)
Код:

Function Encode(a: string): string;
var        len, ch: integer;
                s: string;
begin
        s:=''; len:=Length(a)-1;
        for i:=0 to len do begin ch:=ord(GetChar(a,i)); if ch>122 then s:=s+chr(ch+1104) else s:=s+chr(ch); end;
        Encode:=s;
end;



не пашет! ответ идёт квадратиками! php страница win1251

Strelok 08.07.2008 14:14

Ответ: Эмулятор
 
А я просто php перегонял в другую кодировку(UTF-8 без BOM'a) и всё гудно выходит, к чему ещё лишний код в мидлет вставлять?


Часовой пояс GMT +4, время: 03:15.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot