Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
В продолжение темы отсюда http://www.gotdotnet.ru/Forums/Web/295045.aspx#298680 Руки, чесались давно, ну вот и почесал получилось своего рода mini howto Для приготавления перловки приправленной веб сервисами понадабяться следующие ингредиенты : - Windows XP Professional - Visual Studio 2003 .NET - Active Perl ( http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.817-MSWin32-x86-257965.msi ) После установки Active Perl делаем: > perl -MCPAN -eshell cpan> install SOAP::Lite соглашаемся со всей требухой и после установки делаем quit дале создаем web service : using System; using System.Collections; using System.ComponentModel; using System.IO; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; // pushmsg.asmx namespace pushws { public class pushmsg : System.Web.Services.WebService { public pushmsg() { InitializeComponent(); } #region Vom Komponenten-Designer generierter Code private IContainer components = null; private void InitializeComponent() { } protected override void Dispose( bool disposing ) { if(disposing && components != null) { components.Dispose(); } base.Dispose(disposing); } #endregion [WebMethod] public bool PushMsg(string msg) { using(StreamWriter sw =new StreamWriter(@"C:\Projekte\pushws\temp\msg.txt")) { sw.Write(msg); sw.Flush(); } return true; } } } создаем perl клиента : #!/bin/perl -w use strict; use warnings; use LWP; use SOAP::Lite; use Data::Dumper; use vars qw/ %opt /; my %Services = ( PushMsg => { args => ['Msg'],default => ['Hallo']}, ); sub init() { use Getopt::Std; my $opt_string = 'H:p:u:s:hvdlt'; getopts( "$opt_string", \%opt ) or usage(); usage() if $opt{h}; $opt{v} ||= $opt{d}; } sub usage() { print STDERR << "EOF"; usage: $0 [-hvtdlHpus] [arg1 .. argn] -h : was hast du denn gedacht, wozu das gut ist ? -H : host, default 'localhost' -p : http port, default 80 -u : Root-URL, default '/pushws/pushmsg.asmx' -s : Service name, default 'PushMsg' -l : list services -t : time service -v : verbose output -d : bemuellen die konsole mit debug ausgabe example: $0 -v -H irgendwoimwald -p 80 EOF exit; } sub list() { print "das haben wir heute im menue:\n"; for my $key ( sort keys %Services ) { print "\t$key ( "; print join(', ', @{ $Services{$key}{args} }); print " )\n"; } exit 0; } init(); sub HOST () { $opt{H} || 'localhost' } sub PORT () { $opt{p} || 80 } sub ROOT () { $opt{u} || '/pushws/pushmsg.asmx/' } sub DEBUG () { $opt{d} } sub VERBOSE () { $opt{v} } sub DEFAULT_SERVICE { 'PushMsg' } list() if $opt{l}; my $Browser = LWP::UserAgent->new; my $Url = "http://" . HOST . ":" . PORT . ROOT; my $Service = $opt{s} || DEFAULT_SERVICE; if (! exists $Services{$Service}) { print STDERR "hmm, der service [$Service] ist heute ausnahmsweise nicht verfuegbar.\n"; exit 1; } doService($Service, @ARGV); sub doService { my ($service, @args) = @_; my @params = @{ $Services{$service}{'args'} }; my %pargs = (); if ( $#args != $#params ) { print STDERR "keine oder falsche parameter fuer $service eingegeben (" . ($#args + 1) . '/' . ($#params + 1) . ") -- scheiss drauf...\n"; @args = @{ $Services{$service}{'default'} }; } my $url = $Url . $service; print STDERR "POSTing to $url\n" if VERBOSE; my $i = 0; for (@params) { print STDERR "\t$_ => $args[$i]\n" if VERBOSE; $pargs{$_} = $args[$i++]; } my $response = $Browser->post( $url, [ %pargs ] ); die "Can't post $url -- ", $response->status_line unless $response->is_success; die "es wird xml erwartet, nicht dieser kram -> ", $response->content_type unless $response->content_type eq 'text/xml'; print $response->content; } запускаем : C:\Projekte\perl>testws.pl MessageToPush <?xml version="1.0" encoding="utf-8"?> <boolean xmlns="http://tempuri.org/">true</boolean> C:\Projekte\perl> и смотрим в C:\Projekte\pushws\temp\msg.txt, там должно находиться MessageToPush-- Если тебе помогли, незабудь сказать спасибо -- -- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным -- .NetCoder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 02:31 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
Конечно, крутой изврат, но зачем? Перл почти помер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 10:57 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
perl живее всех живых, а нада мне что бы из linux'а данные толкать на MSSQL, например отпарсить лог OpenVPN и в базу его. -- Если тебе помогли, незабудь сказать спасибо -- -- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным -- .NetCoder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 13:09 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
А почему на Моне тогда просто не написать клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 13:19 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
2Random_Goodman: А почему на Моне тогда просто не написать клиента? потому что OpenVPN/IPSec/FW/SSH вертятся под Linux'ом которы грузиться с Compact Flash и в системе swap отсутствует как класс, кроме того perl out of the box в debian, а моно нет. Вобщем mono client был бы слишком тяжелым клиентом для этих задач Используются вот эти штуки http://www.lex.com.tw:8080/product/product-item.htm-- Если тебе помогли, незабудь сказать спасибо -- -- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным -- .NetCoder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 13:35 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
А зачем такой изврат-то? Ж8-[ ] Для диплома шоль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 13:38 |
|
||
|
Перловка и вебсервисы ;)
|
|||
|---|---|---|---|
|
#18+
Нет, не для диплома, это хозяйство работает сейчас по всей Германии -- Если тебе помогли, незабудь сказать спасибо -- -- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным -- .NetCoder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33855609&tid=1391679]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 362ms |

| 0 / 0 |
