perl和curl 模拟post 发送json数据

来源:互联网 发布:大卫杜夫 知乎 编辑:程序博客网 时间:2024/05/16 08:59
curl 发送post 请求:node2:/etc/httpd/conf#curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"apiinfo.version","params":{},"id":1}' http://192.168.137.3/zabbix/api_jsonrpc.phpHTTP/1.1 200 OKDate: Sun, 12 Mar 2017 18:55:20 GMTServer: Apache/2.2.15 (CentOS)X-Powered-By: PHP/5.3.3Content-Length: 41Connection: closeContent-Type: application/json{"jsonrpc":"2.0","result":"2.2.2","id":1}node2:/etc/httpd/conf# -i/--include 输出时包括protocol头信息  -X/--request <command>指定什么命令    -H/--header <line>自定义头信息传递给服务器    -d/--data <data>   HTTP POST方式传送数据      use  LWP::UserAgent;   use LWP;  use Encode;  use LWP::Simple;  use LWP::UserAgent;  use HTTP::Cookies;  use HTTP::Headers;  use HTTP::Response;  use Encode;  use URI::Escape;  use URI::URL;  use JSON;  use Data::Dumper;    my $ua = LWP::UserAgent->new;       $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");    my $cookie_jar = HTTP::Cookies->new(       file=>'lwp_cookies.txt',       autosave=>1,       ignore_discard=>1);       $ua->cookie_jar($cookie_jar);      my $login_url ="http://192.168.137.3/zabbix/api_jsonrpc.php";       my $post = {             "jsonrpc"=>"2.0",         "method"=>"apiinfo.version",         "id"=>1, "params"=>{}               };        use JSON qw(encode_json);        $json_string = encode_json($post);            my $req = HTTP::Request->new(            'POST' => $login_url      );        $req->referer("https://wx.qq.com/?&lang=zh_CN");        $req->content_type('application/json-rpc; charset=UTF-8')          ;    #post请求,如果有发送参数,必须要有这句        $req->content("$json_string");    #发送post的参数        my $res = $ua->request($req);        print $res->content();            #获取的是响应正文    

0 0
原创粉丝点击