URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5532
[ Назад ]

Исходное сообщение
"Нужна помощь по JSON-RPC и PERL"

Отправлено maksmaks , 06-Фев-08 23:22 
Никто не помог, как просишь пример все молчят , наверно и незнают просто строят из себя асов.
сообстнно сабж:
на мой сервак будут передавть данные в формате JSON-RPC.прошу пример как парсить сие чюдо.
доки перечитал , но сам процесс получения данных не понял.
что бы взять GET запрос пишешь $ENV{'QUERY_STRING'},а как JSON данные ??
помогите если кто знает.

Содержание

Сообщения в этом обсуждении
"Нужна помощь по JSON-RPC и PERL"
Отправлено angra , 07-Фев-08 00:07 
Наверное просто все считают что набрать json на search.cpan.org в строке поиска это не слишком сложно и не требует подробных инструкций.


"Нужна помощь по JSON-RPC и PERL"
Отправлено maksmaks , 07-Фев-08 00:17 
>Наверное просто все считают что набрать json на search.cpan.org в строке поиска
>это не слишком сложно и не требует подробных инструкций.

скачал всё со спана , поставил, прочел .если бы всё заработало врядли стал бы просить помощи и тратить время и своё и чужое.а эти так называемые "все" -кто хочет пусть сами попробуют - с ходу понять и заставить работать.
к слову рабочую клиентскую часть нашел , попробовал - насколько понял работает.


"Нужна помощь по JSON-RPC и PERL"
Отправлено angra , 07-Фев-08 00:51 
Про разницу между версиями прочитали? Модуль для корректного разбора GET/POST используете? Отлаживать пробовали?
Ну а самое главное научитесь правильно задавать вопросы, телепатов здесь не водится и вопросы в стиле "у меня все не работает как починить?" останутся без ответа.

"Нужна помощь по JSON-RPC и PERL"
Отправлено maksmaks , 07-Фев-08 01:09 
>Про разницу между версиями прочитали? Модуль для корректного разбора GET/POST используете? Отлаживать
>пробовали?

1 прочел всё что было на CPAN про JSON
2 скачал всё что было последнее.
3 для отладки надо доконца понять как парсить.

>Ну а самое главное научитесь правильно задавать вопросы, телепатов здесь не водится
>и вопросы в стиле "у меня все не работает как починить?"
>останутся без ответа.

опять тоже самое ... телепаты и всё такое ... где я писал про починить и не работает ?
вопрос конкретен до не приличия :
подскажите синтаксис взятия данных и JSON запроса при помощи перла , желательно с работающим примером.

это кусок клиента:(тут вроде все понятно;url,content_type,post и всё остальное,
хотелось бы серверную часть получить, идеи есть,но тупо тестить методом перебора нету времени,горю)
my $actionurl = "http://localhost/cgi-bin/armserv";   &nb...
                                                          
my $ua = LWP::UserAgent->new();                          
$ua->agent("JSONClient/0.1");                            
                                                          
my $object = { test => "fish",                            
   wibble => ["meep", "flange" ] };                      
                                                          
   my $json = to_json($object);                          
   print "$json\n";                                      
   my $req = HTTP::Request->new(POST => $actionurl);      
   $req->content_type('application/json');                
   $req->content($json);                                  


"Нужна помощь по JSON-RPC и PERL"
Отправлено angra , 07-Фев-08 01:53 
>опять тоже самое ... телепаты и всё такое ...

Ну так задавайте правильно вопрос и не будут вам такое писать. Из ваших предыдущих сообщений совершенно не ясно было что за клиент и версия json используется, какие именно структура пересылается и каким набором команд, какие именно действия предпринимаются на принимающей стороне, что именно нарушается в работе, какие сообщения об ошибках, как выглядят переданные данные до и после прохода через json->decode. Все это надо указывать

>где я писал про починить и не работает ?

да прям в этом сообщении :), вы же просите дать работающий код, что в общем-то равносильно.

С учетом приведенного вами фрагмента могу написать работающий вариант принимающей стороны. Только сначала ответьте пожалуйста на один вопрос: зачем понадобился JSON для передачи данных от одного перлового скрипта к другому, чем не подошел тот же Storable?


"Нужна помощь по JSON-RPC и PERL"
Отправлено maksmaks , 07-Фев-08 10:55 
>С учетом приведенного вами фрагмента могу написать работающий вариант принимающей стороны. Только
>сначала ответьте пожалуйста на один вопрос: зачем понадобился JSON для передачи
>данных от одного перлового скрипта к другому, чем не подошел тот
>же Storable?

у меня есть уже написанный на перле скрипт который работает с простыми GET запросами,обрабатывает и дальше дергает инфу из нашей базы и возвращает клиенту.
что бы до конца прояснить ситуацию скажу что это для работы аппаратов по оплатам разных услуг (нтв+,телефонные карты и прочее) с компанией TELL CELL (может слышали )всё сделал уже 2 месяца работаем,а с этими байда ...


"Нужна помощь по JSON-RPC и PERL"
Отправлено angra , 08-Фев-08 02:21 
Так и непонятно зачем вам JSON, да и с передачей параметров в POST работаете странно. Но пусть будет
1. Ваш скрипт для передачи, слегка измененный(добавил посылание запроса и вывод ответа)
use strict;
use LWP;
use JSON;
use Data::Dumper;

my $actionurl = "http://test/cgi-bin/t2.pl";

my $ua = LWP::UserAgent->new();
$ua->agent("JSONClient/0.1");

my $object = {
  test => "fish",
  wibble => ["meep", "flange" ]
};

my $json = to_json($object);
print "object:",Dumper($object),"\n";
print "json: $json\n";
my $req = HTTP::Request->new(POST => $actionurl);
$req->content_type('application/json');
$req->content($json);
my $res = $ua->request($req);
if ($res->is_success) {
  print "Response:\n",$res->content;
}
else {
  print $res->status_line, "\n";
}

2. Скрипт принимающий данные:
#!/usr/bin/perl
use strict;
use JSON;
use Data::Dumper;
print "Content-type:text/html\n\n";
$/=undef;
my $raw_data=<>;
my $data=from_json($raw_data);
print "Raw data:$raw_data\n";
print "Perl data:",Dumper($data),"\n";

3. результат работы:
object:$VAR1 = {
          'wibble' => [
                        'meep',
                        'flange'
                      ],
          'test' => 'fish'
        };

json: {"test":"fish","wibble":["meep","flange"]}
Response:
Raw data:{"test":"fish","wibble":["meep","flange"]}
Perl data:$VAR1 = {
          'wibble' => [
                        'meep',
                        'flange'
                      ],
          'test' => 'fish'
        };


"Нужна помощь по JSON-RPC и PERL"
Отправлено maksmaks , 09-Фев-08 11:55 
>Так и непонятно зачем вам JSON, да и с передачей параметров в
>POST работаете странно. Но пусть будет

JSON нужен не мне - это оператор автоматов данные щлет в этом формате,я бы простым POST-ом обошелся . за скрипт спасибо.я и сам методом тыка нашел , но твоя конструкция тоже пригодится.


"Нужна помощь по JSON-RPC и PERL"
Отправлено angra , 09-Фев-08 15:53 
Только слать он будет совсем не так как это делаешь ты, хотя бы потому что твой вариант не соответствует стандарту передачи параметров в cgi. А чтобы понять что именно приходит ипользуй Data::Dumper.

"Нужна помощь по JSON-RPC и PERL"
Отправлено maksmaks , 07-Фев-08 16:24 
если я не ошибаюсь конструкция приблизительно так должна выглядеть :


$jsondata = retrieve_json_from_post();    
после чего следует декодить и работать с данными ,но чуствую что чего нехватает.