Perl HTTP::Tiny


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl HTTP::Tiny
# 1  
Old 07-17-2016
Perl HTTP::Tiny

I'm currently using OpenBSD current as of yesterday. Both curl and wget aren't not part of the OpenBSD base and I would rather attempt to reboot my cable modem (SB6183) using perl HTTP:Tiny if possible. The following 2 commands work and both will reboot my modem:

Code:
curl -d Rebooting=1 http://192.168.100.1/goform/RgConfiguration

wget --post-data=Rebooting=1 http://192.168.100.1/goform/RgConfiguration

I would like to use the perl HTTP:Tiny module to reboot my router. Here is something I came up with that doesn't work. I need to implement post data Rebooting=1 for it to work but I can't figure that out:

Code:
perl -MHTTP::Tiny -E 'say HTTP::Tiny->new->post("http://192.168.100.1/goform/RgConfiguration")

Anyone have any ideas on proper HTTP::Tiny syntax so this will work?

Last edited by azdps; 07-17-2016 at 08:35 PM..
# 2  
Old 07-17-2016
Can't say I've played with HTTP::Tiny but have you tried:

Code:
perl -MHTTP::Tiny -E 'say HTTP::Tiny->new->post("http://192.168.100.1/goform/RgConfiguration?Rebooting=1")

# 3  
Old 07-17-2016
Chubler_XL unfortunately that did not work.

Last edited by azdps; 07-23-2016 at 06:37 PM..
# 4  
Old 07-23-2016
All the following are working solutions to reboot the ARRIS SURFboard SB6183 cable modem:

Using curl
Code:
curl -d Rebooting=1 http://192.168.100.1/goform/RgConfiguration

Using wget
Code:
wget --quiet -O /dev/null --post-data=Rebooting=1 http://192.168.100.1/goform/RgConfiguration

Using HTTP:Tiny module included in Perl (one liner which can be used at a command prompt)
Code:
perl -MHTTP::Tiny -E 'HTTP::Tiny->new->post_form("http://192.168.100.1/goform/RgConfiguration", { Rebooting => 1 })'

Using a Perl script
Code:
#!/usr/bin/perl 
 
use strict; 
use warnings; 
use HTTP::Tiny; 
 
my $url       = 'http://192.168.100.1/goform/RgConfiguration'; 
my $form_data = { Rebooting => 1 }; 
my $http      = HTTP::Tiny->new; 
my $response  = $http->post_form($url, $form_data); 
 
if ( $response->{success} ) { 
    print "Modem rebooted\n"; 
} 
else { 
    print "Reboot failed: ", $response->{reason}, "\n"; 
}


Thanks to FishMonger for his help over at the http://perlguru.com forums. Smilie
.
.

Last edited by azdps; 07-23-2016 at 06:52 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

3 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script to find time difference between HTTP PUT and HTTP DELETE requests in access.log

Hi, I'm trying to write a script to determine the time gap between HTTP PUT and HTTP DELETE requests in the HTTP Servers access log. Normally client will do HTTP PUT to push content e.g. file_1.txt and 21 seconds later it will do HTTP DELETE, but sometimes the time varies causing some issues... (3 Replies)
Discussion started by: Juha
3 Replies

2. Shell Programming and Scripting

Perl Http Post over SSL

Hello, I'm using a tunnel broker for tunneling IPv6 traffic, as my ISP does not support it natively. As of recent i switched from Hurricane Electrics tunnel broker to Sixxs. Whenever my IP address changes, i have to manually log in and change it. This is a bit cumbersome so i was thinking of... (0 Replies)
Discussion started by: regexp
0 Replies

3. Shell Programming and Scripting

Assistance with Perl and HTTP

I need to query a http site and then parse the xml results, this works well if I use the string in IE but I require an automated solution. I have tried using the following as well as HTTP::Request, nothing seems to work any suggestions would be appreciated, I have tried diffrnt things I found on... (7 Replies)
Discussion started by: bryanthomas
7 Replies
Login or Register to Ask a Question