这是我正在使用的表格。
<form name="form1" method="post" action="http://lumbininet.com.np/eservice/index.php/login/processLogin" id="login_form">
<input type="hidden" name="logout" value=0>
<table>
<tr>
<td colspan="2" class="sub-body-txt" height="10">
</td>
</tr>
<tr>
<td width="135" colspan="2" class="sub-body-txt"><p>Username</p></td>
</tr>
<tr>
<td colspan="2"><input name="username" type="text" id="username" class="sub-body-txt" size="20"></td>
</tr>
<tr>
<td colspan="2" class="sub-body-txt"><p>Password:</p></td>
</tr>
<tr>
<td colspan="2"><input name="password" type="password" id="password" AUTOCOMPLETE="off" class="sub-body-txt" size="20"></td>
</tr>
<tr>
<td>
<input type="hidden" name="port" value="110">
<input type="hidden" name="rootdir" value="">
</td>
</tr>
<tr>
<!-- <td colspan="2"><input type="button" value="Login" src="/main/icons/buttn_login.gif" style="width:100px; " name="Submit" id="login_btn"></td> -->
<td colspan="2"><input type="submit" value="Login" src=/main/icons/buttn_login.gif" style="width:100px; border-radius:2px; background:#000fff; color:white "name="Submit" id="login_btn"></td>
</tr>
<tr>
<td height="15" colspan="2" class="s-body-txt-lnk"> </td>
</tr>
</table>
</form>
它有四个字段可以填写“用户名”,“密码”,“端口”和“rootdir”。 我正在向此页面发出POST请求:
import requests
proxies = {
"http":"http://heed:ravi@172.31.103.29:3128",
"https":"https://heed:ravi@172.31.103.29:3128"
}
headers = { 'Accept':'*/*',
'Accept-Language':'en-US,en;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Proxy-Authorization':'Basic ZWRjZ3Vlc3Q6ZWRjZ3Vlc3Q=',
'If-Modified-Since':'Fri, 13 Nov 2015 17:47:23 GMT',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
}
with requests.Session() as c:
url = 'http://lumbininet.com.np/eservice/index.php/login'
c.get(url, proxies=proxies, headers=headers)
payload = {'username': 'myusername', 'password': 'mypassword', 'port':'110', 'rootdir':''}
c.post(url, data = payload, proxies=proxies, headers=headers)
r = c.get('http://lumbininet.com.np/eservice/index.php/login/processLogin', proxies=proxies, headers=headers)
print (r.content)
但是当我运行它时,没有任何内容被打印出来。 我究竟做错了什么 ? 我正在发出POST请求错误的链接吗? 那些字段值(特别是'隐藏'类型)呢?
请帮忙。
答案 0 :(得分:0)
根据HTML,为void foo(const CustomType& x, const CustomType& y){
x * y; // Compile error, cannot call non-const operator * on const object.
}
定义的action
为form
因此,您的action="http://lumbininet.com.np/eservice/index.php/login/processLogin"
应该发送到此网址,而不是您定义的网址(POST
)
答案 1 :(得分:0)
我只能看到,POST
请求时您的标题缺少referer
,有时非常重要。
尝试在发送POST
请求时将这些内容添加到标题中。
'Host':'lumbininet.com.np',
'Origin':'http://lumbininet.com.np',
'Referer':'http://lumbininet.com.np/eservice/index.php/login',
'Content-Type':'application/x-www-form-urlencoded'
此外,作为预防措施,请尝试在第一次GET
请求后打印状态代码,并确保其为200。
希望有所帮助。