Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7[/thread]

Post-Daten an Server senden

Leser: 3


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
SirLant
 2003-08-14 22:33
#6611 #6611
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Wenn ich bei einer Anfrage an den Server auch noch Post-Daten mitschicken muss, wie kann ich das am einfachsten realisieren?Geht das auch mit LWP::Simple?
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
esskar
 2003-08-14 23:33
#6612 #6612
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
das geht mit LWP::Simple, aber du kannst auch ein ganz normales formular via browser versenden
SirLant
 2003-08-14 23:43
#6613 #6613
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Ja aber, es ist schwerer, den Browser zu steuern, als einfach nen Script zu schreiben, dass mit dem Webserver kommuniziert.
Hast du dazu evt. noch nen beispiel?
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
jan
 2003-08-15 00:01
#6614 #6614
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
POST geht nicht mit LWP::Simple, dazu brauchst du LWP::UserAgent.

perldoc ist wie immer dein freund.
http://www.perldoc.com/perl5.8.0/lib/LWP/UserAgent.html
http://www.perldoc.com/perl5.8.0/lib/lwpcook.html
pq
 2003-08-15 03:06
#6615 #6615
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
oder eine bequeme alternative:
CPAN:WWW::Mechanize::Shell
sehr zu empfehlen!
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
snadra
 2003-08-15 11:33
#6616 #6616
User since
2003-08-11
265 Artikel
BenutzerIn
[Homepage] [default_avatar]
Geht es nur darum Daten per http an einen Server zu übertragen? Wenn da auch noch eine Webseite mit zu tun hat ignoriere diesen Post.
Ansonsten, kann ich Dir Soap (ein Webservice) empfehlen.
Dazu kannst Du Dir auch mal das Modul SOAP::Lite ansehen.
http://hamburg.pm.org
jeden 2. mittwoch im monat
--
#!/usr/bin/perl -w
$l=join('',map chr,(116,110,105,114,112))if$^T;
!!$$?@_=qw(Jhfg Aabgure Prey Hnpxre):$l=1;
for(@_){eval reverse($l)."'"._(_(_($_))).' \''}
sub _{$_=~y+a-z+n-za-m+and pop}
SirLant
 2003-08-15 23:12
#6617 #6617
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Ich muss dem Server Daten über Post senden, damit ich die richtigen Ergebnisse erhalte.
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
snadra
 2003-08-16 00:15
#6618 #6618
User since
2003-08-11
265 Artikel
BenutzerIn
[Homepage] [default_avatar]
Für ein Script oder den aufbau einer Website in einem Browser?
Wenn Script, dann SOAP, ansonsten lese die anderen Posts...
http://hamburg.pm.org
jeden 2. mittwoch im monat
--
#!/usr/bin/perl -w
$l=join('',map chr,(116,110,105,114,112))if$^T;
!!$$?@_=qw(Jhfg Aabgure Prey Hnpxre):$l=1;
for(@_){eval reverse($l)."'"._(_(_($_))).' \''}
sub _{$_=~y+a-z+n-za-m+and pop}
SirLant
 2003-08-16 01:12
#6619 #6619
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
nein nur das script, es soll zwar in besonderen fällen, den HTMl-COde in ne Seite packen und im Browser anzeigen, aber im normalfall, macht das Script alles.
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
stefanos
 2003-08-25 20:26
#6620 #6620
User since
2003-08-15
2 Artikel
BenutzerIn
[default_avatar]
Entweder nutzt du LWP::UserAgent und ähnliche Module.
Alternativ kannst es auch fast ohne Module machen :-)

Das folgende Beispiel zeigt wie es geht:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use Socket;

sub post {
        local($res);
        eval {
        local $SIG{ALRM} = sub { die "alarm\n" };
        alarm(10); # Timeout - 10 Sekunden
        $url = shift;
        $content = shift;
        $referer = shift;
        $content_type = shift || "application/x-www-form-urlencoded";
        $content_length = length($content);

        ($host, $uri) = ($url =~ m!http://(.*?)(/.*)!);

        socket SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp');
        connect SOCK, sockaddr_in(80, inet_aton($host));

        send SOCK, "POST $uri HTTP/1.0\r\nHost: $host\r\n" .
               "Content-Type: $content_type\r\nContent-Length:" .
               "$content_length\r\n\r\n$content", 0;
        0 while <SOCK> !~ /^\r\n$/;
        $res .= $_ while <SOCK>;
        close SOCK;
        alarm(0);
        };
        return($res);
}


Aufruf:
$inhalt = &post("http://www.domain.de/eintrag.cgi","addurl=Submit URL&NewURL=$url");

Kannst du natürlich auch mit IO::Socket machen dort gibt es mehr möglichkeiten z.B.: um einen Timeout zu haben.\n\n

<!--EDIT|stefanos|1061829390-->
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2003-08-14 22:33.