Font
[thread]761[/thread]

LWP::UserAgent (Syntax): - wie lade ich eine Datei über POST -

Reader: 1


<< >> 8 entries, 1 page
suliko
 2006-06-23 14:51
#8104 #8104
User since
2006-04-26
23 articles
BenutzerIn
[default_avatar]
Hallo,

ich habe ein Gerät-X, das sich über eine Datei konfigurieren lässt. Das Gerät bietet eine HTML-GUI und über die kann man die Konfigurationsdatei hochladen. Ich kenne die IP-Nummer vom Gerät + die Struktur von der Konfigurationsdatei.

In meinem Fall möchte ich diese Web-GUI umgehen und die Konfigurationdatei über ein Skript abschicken.

Dies hier habe ich gebastelt:

Code: (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
29
30
31
32
33
34
35
36
37
38
#!c:/perl/bin/Perl.exe

use CGI::Carp "fatalsToBrowser";
use strict;

use LWP::UserAgent;
use HTTP::Request::Common;

my $ua = LWP::UserAgent->new();

my $resp = $ua->request(POST 'http://192.168.0.248/cfg.html',

Content_Type => 'form-data',

'SID' => 'xy00',

'id' => '56069145',

'file' => ["C:\Dokumente und Einstellungen\user\Desktop\myConfigFile.xml"]);

my $content = $resp->content;

print <<HTML;
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<body>

$content

</body>

</html>

HTML


Irgendwie funktioniert das ganze nicht... es kommt sogar eine Fehlermeldung vom Server:

Quote
500 Server closed connection without sending any data back


Was ist falsch?

Danke für Tipps!
:::bona mente:::
Linuxer
 2006-06-23 15:33
#8105 #8105
User since
2006-01-27
3783 articles
HausmeisterIn

user image
Zwischen Methode und URL gehört der Zuweisungsoperator für Hashes ...

Code: (dl )
1
2
3
4
5
6
7
8
my $resp = $ua->request(
# ZUWEISEN
POST => 'http://192.168.0.248/cfg.html',
Content_Type => 'form-data',
'SID' => 'xy00',
'id' => '56069145',
'file' => ["C:\Dokumente und Einstellungen\user\Desktop\myConfigFile.xml"]
);


siehe CPAN:HTTP::Request

[edit1]Formatierung angepasst; CPAN Modul korrigiert[/edit1]\n\n

<!--EDIT|Linuxer|1151062565-->
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
renee
 2006-06-23 15:51
#8106 #8106
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Wenn " benutzt werden, muss es aber "C:\\Dokumente ..." - also mit doppelten \ heißen!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
suliko
 2006-06-23 15:59
#8107 #8107
User since
2006-04-26
23 articles
BenutzerIn
[default_avatar]
[quote=Linuxer,23.06.2006, 13:33]Zwischen Methode und URL gehört der Zuweisungsoperator für Hashes ...[/quote]
Da kommt die Servermeldung:

Quote
You need a request object, not 'POST' at C:/Programme/Apache Group/Apache2/cgi-bin/post.pl
:::bona mente:::
suliko
 2006-06-23 16:01
#8108 #8108
User since
2006-04-26
23 articles
BenutzerIn
[default_avatar]
[quote=renee,23.06.2006, 13:51]Wenn " benutzt werden, muss es aber "C:\\Dokumente ..." - also mit doppelten \ heißen![/quote]

Oder so ' C:\Dokumente ...' ?
:::bona mente:::
renee
 2006-06-23 17:05
#8109 #8109
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Schau mal ins CPAN:Kochbuch zu CPAN:libwww. Da ist es beschrieben wie man einen POST-Request macht...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Linuxer
 2006-06-23 17:44
#8110 #8110
User since
2006-01-27
3783 articles
HausmeisterIn

user image
suliko,...
Da kommt die Servermeldung:

You need a request object, not 'POST' at C:/Programme/Apache Group/Apache2/cgi-bin/post.pl


Hmm, jo. Ich habe im Eifer des Gefechts vergessen, dass ein POST Request anders aufgebaut wird als ein GET Request; sorry.
Halte Dich mal an das lwp Kochbuch, das renee Dir verlinkt hat ...

renee,...
Wenn " benutzt werden, muss es aber "C:\\Dokumente ..." - also mit doppelten \ heißen!


Stimmt, hast Recht. Allerdings ist die Lifetime meines WinDOS Support abgelaufen, daher achte ich kaum noch auf WinDOS-spezifische Fehler ;o)) ....
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
suliko
 2006-06-26 13:54
#8111 #8111
User since
2006-04-26
23 articles
BenutzerIn
[default_avatar]
Hallo,

irgendwie klappt's bei mir nicht...

Wenn ich im Original html-File diese Names-Values habe:

<form name="config" method="POST" action="config.htm">
<input type="submit" name="id_nr566" value="&nbsp;Schreiben&nbsp;">

Was soll ich dann in meinem POST-Request schreiben?


:(
:::bona mente:::
<< >> 8 entries, 1 page



View all threads created 2006-06-23 14:51.