日期:2014-05-17  浏览次数:20760 次

asp xmlhttp 登录成功后,发表文章不成功,什么原因
loginstr   =   "username= "   +   usr   +   "&password= "   +   pwd
loginUrl   =   "http://www.CXXXXXXX.com/login "
Set   xmlhttp   =   Createobject( "Microsoft.XMLHTTP ")
xmlhttp.Open   "POST ",loginUrl,False
xmlhttp.setRequestHeader   "content-type ", "application/x-www-form-urlencoded "
xmlhttp.Send   loginstr

'上面已经登录成功,下边还是用上边的方法发表文章,同样是post,但为什么不能提交成功呢

loginstr   =   "txt= "   +   usr   +   "&cnt= "   +   pwd
loginUrl   =   "http://www.CXXXXXXX.com/login "
Set   xmlhttp   =   Createobject( "Microsoft.XMLHTTP ")
xmlhttp.Open   "POST ",loginUrl,False
xmlhttp.setRequestHeader   "content-type ", "application/x-www-form-urlencoded "
xmlhttp.Send   loginstr

听说是要设置cookie什么来着,请问怎么去做就可以了


------解决方案--------------------
loginstr = "txt= " + usr + "&cnt= " + pwd
loginUrl = "http://www.CXXXXXXX.com/login "
Set xmlhttp = Createobject( "Microsoft.XMLHTTP ")
xmlhttp.Open "POST ",loginUrl,False
xmlhttp.setRequestHeader "content-type ", "application/x-www-form-urlencoded "
xmlhttp.Send loginstr
------解决方案--------------------
原因很多,我知道至少2种情况会导致上面的问题:

1、发送的数据必须经过编码,否则非asc字符会出问题
应该写成 "user= "&escape(strUser)
数据也是一样oXmlhttp.send "txt= "&escape(strTxt)

2、Cookie问题
某些网站通过验证码login后,会写入cookie。
Cookie的发送需要构造包头, 而xmlhttp用SetRequestHeader处理 "Set-Cookie "无效