工作中经常用到脚本发送http请求,但是用脚本发送和用浏览器发送差别很到,当你用脚本调用一些接口时可能没有权限,此时需要获取到调用接口的权限,一般情况下就是。请求的时候需要带着一个cookie值或者一个token值,浏览器发送时一般都会保存这个值,但是脚本发送不知道保存在那个地方还是不会生成(知道的小伙伴告诉我一声),但是一般的做法是带着用户名和密码去请求,服务器给你回复一个cookie值,然后下一次调用接口的时候就带着这个cookie值去请求;

获取cookie值

```
sub getCookie{my($ip,$port)=@_;my  $ua = LWP::UserAgent->new(protocols_allowed => [ 'http', 'https' ],timeout           => 30, ssl_opts => { verify_hostname => 0},);$username='admin';$password='admin';#密码有没经过加密处理,如果经过加密处理要写加密后的my $arg={'username' => $username,'password' => $password,};$url="https://$ip:$port/vapi/extjs/access/ticket";#url可以抓包获取,不是登录的那个地址my  $resp = $ua->post($url,$arg,'Content_Type' => 'form-data');#用post方法提交参数my $status=$resp->status_line;my $header=$resp->headers_as_string;#解析头部my $content = $resp->content;if ($status=~ /200/){@array=split(/\n/,$header);foreach $rock (@array){if ($rock=~/^Set-Cookie/){@Setcookie=split(/\s+/,$rock);$Setcookie[1]=~s/;$//;my $cookie=$Setcookie[1];$content=$cookie;last;}}}     return $content;
}
  • 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
  • 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

发送get请求

调用上面的getcookie函数,获取cookie值
sub https_Get {my ( $url,$cookie) = @_;my $ua = LWP::UserAgent->new(protocols_allowed => [ 'http', 'https' ],timeout           => 30,ssl_opts => { verify_hostname => 0 },);$ua->default_header('cookie' => "$cookie" );my $response = $ua->get($url);return $response->{_content};
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

发送post请求

sub https_Post{my($url,$arg,$cookie) = @_; #arg为需要提交的参数my  $ua = LWP::UserAgent->new(protocols_allowed => [ 'http', 'https' ],timeout           => 30,  ssl_opts => { verify_hostname => 0},);$ua->default_header('cookie' => "$cookie" );$resp = $ua->post($url,$arg,'Content_Type' => 'form-data');  #注意参数的格式是form-data还是其他格式,可用postman(一款模拟发送http请求的插件,只可以在谷歌浏览器中用)调试 $content = $resp->content;return $content;}

用perl发送http请求相关推荐

  1. ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?

    我想创建ajax调用并发送数据与文件和其他变量,我也使用django,如果它的帮助.如何发送ajax请求文件与其他字符串的变量? 我尝试: js文件: $("#save-new-reques ...

  2. jquery发送put请求_浅谈GET,POST,PUT发送请求

    一般我们在浏览器的地址栏输入网址回车后,发送的是GET请求 当用表单提交时(最普遍的是用户登录),我们可以指定是GET还是POST请求,这里需要注意的是有的浏览器并不支持PUT请求,那后台restfu ...

  3. 使用rest_framework写api接口的一些注意事项(axios发送ajax请求)

    1. 类继承GenericAPIView,定义queryset 印象深刻的事: 由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset 没有设置 ...

  4. Vue之axios发送Ajax请求

    2.10 axios发送ajax请求 axios github 2.10.1 准备工程 创建一个django工程,例如 login.创建完成之后,再创建一个子应用,例如users.最后再设置一下模板文 ...

  5. 爬虫之requests模块发送post请求

    爬虫之requests模块发送post请求 思考:哪些地方我们会用到POST请求? 登录注册( 在web工程师看来POST 比 GET 更安全,url地址中不会暴露用户的账号密码等信息) 需要传输大文 ...

  6. java post xmll_HttpClient发送Post请求,内容格式为xml,并获取响应内容

    ChannelDistributor.xml 内容如下: yisou abcd1234 10010000 00 1).HttpClient发送Post请求,内容格式为xml,并获取响应内容 impor ...

  7. PHP爬取post网页数据,php curl发送post请求爬取webService接口数据简单实例

    header('Content-Type: text/html;charset=utf-8'); /** * 使用curl发送post请求 * @param $url * @param string ...

  8. python写页面发送post请求_Python模拟浏览器向CSDN发送post请求的方法,POST

    目录 1.发送get请求的方法 import requests import json def GET(url): #get请求 req = requests.get(url) #输出状态码 prin ...

  9. python并发发送http请求_用python异步发送http请求来提升效率

    需求 在一个我做的项目里,业务流程有一环需要调用http的接口. 这个接口本身是同步处理的,返回响应的速度会根据要处理的数据量不同而不同. 为了不拖慢主业务流程,客户要求采用异步的方式来请求,即只要得 ...

最新文章

  1. HDU 1155 Bungee Jumping
  2. python的工作方向-python职业发展方向有哪些,各有什么优劣?
  3. 如何编译java,java如何编译运行?
  4. Python常见十六个错误集合,你知道那些?
  5. SDUT 2766 小明传奇2
  6. BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)
  7. DDMS工具使用(转)
  8. Android SharedPreference最佳实践
  9. ArcGIS JavaScript在线编辑
  10. Android的Button监听
  11. 在WebClient类中保持Session
  12. 【计算机毕业设计】小型OA系统设计与实现Springboot
  13. 手把手教你Markdown语法
  14. 优秀课程案例:使用Scratch绘制初中数学中心对称图形!
  15. java: 读取D:\repository\org\lz4\lz4-java\1.7.1\lz4-java.jar时出错; error in opening zip file解决方案
  16. torch.nn.CosineSimilarity() 三维张量
  17. 驱动器开发:基础概念一览
  18. 中国移动手机支付须走自主创新之路
  19. C语言库函数— qsort () 详解
  20. 浅谈Lattepanda

热门文章

  1. 公司不能把笔记导出去真操蛋
  2. linux的functions之killproc函数详解
  3. 阿里云新手必踩坑系列 - 安全组
  4. 记录水电开发的心理【2】
  5. 软件公司多注重开发不注重管理
  6. DOS下常用网络相关命令解释(华为培训资料)
  7. 微软、英特尔和高盛牵头成立供应链安全工作组
  8. Tornado之异步authenticated
  9. 动态创建MySQL Group Replication的节点(r11笔记第84天)
  10. python之twisted模块安装