Python:如何在POST请求中发送html代码

时间:2014-08-16 08:07:15

标签: python joomla http-headers urllib2 urllib

我尝试将python脚本中的html代码发送到Joomla网站。

description = "<h1>Header</h1><p>text</p>"   

values = {'description' : description.encode(self.encoding),
          'id = '       : 5,
         }
data = urlencode(values)
binData = data.encode(self.encoding)

headers = { 'User-Agent' : self.userAgent,
            'X-Requested-With' : 'XMLHttpRequest'}

req = urllib2.Request(self.addr, binData, headers)

response = urllib2.urlopen(req)
rawreply = response.read()

在Joomla-server,我得到了相同的字符串,但没有html:

$desc       = JRequest::getVar('description', '', 'POST');

出了什么问题?

2 个答案:

答案 0 :(得分:1)

您应该使用请求

pip install requests

然后

import requests

description = "<h1>Header</h1><p>text</p>"   
values = dict(description='description',id=5)
response = requests.post(self.addr,data=values)

if response.ok:
    print response.json()

或者如果joomla没有返回json

print response.content

答案 1 :(得分:0)

JRequest :: getVar或JRequest :: getString过滤HTML代码。但它可以关闭:

$desc = JRequest::getVar('description', '', 'POST', 'string', JREQUEST_ALLOWHTML);