in reply to Re: How to Post a HTTP Request for a JSON web page?
in thread How to Post a HTTP Request for a JSON web page?
The below code worked fine. I missed to have "/JNAP/" in my URL after adding all the header fields required.
use strict; use warnings; use LWP; #creat User Agent using LWP my $ua = LWP::UserAgent->new(); my $url = "http://192.168.1.1/JNAP/"; my $json = "[{\"action\":\"http://cisco.com/jnap/wirelessap/SetRadioSe +ttings\","; $json .= "\"request\":{\"radios\":[{\"radioID\":\"RADIO_2.4GHz\",\"set +tings\":"; $json .= "{\"isEnabled\":true,\"mode\":\"802.11bgn\",\"ssid\":\"Vinodh +La\",\"broadcastSSID\":true,"; $json .= "\"channelWidth\":\"Auto\",\"channel\":6,\"security\":\"None\ +"}}]}},"; $json .= "{\"action\":\"http://cisco.com/jnap/guestnetwork/SetGuestNet +workSettings\","; $json .= "\"request\":{\"isGuestNetworkEnabled\":false,\"guestSSID\":\ +"vinoth-guest\",\"guestPassword\":\"BeMyGuest\","; $json .= "\"maxSimultaneousGuests\":5,\"broadcastGuestSSID\":false}}]" +; my $req = HTTP::Request->new(POST=>$url); $req->header('Content-Type' => 'application/json; charset=UTF-8'); $req->header('X-JNAP-Action' => 'http://cisco.com/jnap/core/Transactio +n'); $req->header('X-JNAP-Authorization' => 'Basic YWRtaW46YWRtaW4='); $req->header('X-Requested-With' => 'XMLHttpRequest'); $req->header('Referer' => "http://192.168.1.1/"); $req->content($json); my $res = $ua->request($req); if ($res->is_success) { my $message = $res->decoded_content; print "received the message"; } else { use Data::Dump qw/ dd /; dd( $res->as_string ); print "HTTP get code: ", $res->code, "\n"; print "HTTP get msg : ", $res->message, "\n"; }
|
|---|