如果是直接把参数写好,然后直接在网页地址栏粘贴url地址,先登录,然后在预定是可以的。但我一加到程序里就不行了。代码如下
/// <summary>
/// 预定
/// </summary>
/// <param name="roomid"></param>
protected void GetYD(string roomid) {
//向服务器提交登录信息(以下返回一个xml文件)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("http://服务器ip/HCRSext/tx/hcrsinterface.do?cmd=login&charset=gb18030&loginname=no2&password=friendNo2");
//预定接口(以下返回一个xml文件)
string url = "http://服务器ip/HCRSext/tx/hcrsinterface.do?cmd=booking&charset=gb18030&dateformat=yyyy-mm-dd&roomtypeid=" + roomid + "&checkindate=2012-11-23&checkoutdate=2012-11-24&count=1&guestname=no2&phone=13956969079&remark=好&loginname=no2&password=friendNo2";
xmlDoc.Load(url);
XmlNodeList xn = xmlDoc.SelectSingleNode("result").ChildNodes;
foreach (XmlNode xnf in xn)
{
XmlElement xe = (XmlElement)xnf;
if (xe.Name == "alert")
{
msg = "<script>alert('" + xe.InnerText + "');</script>";
}
}
}
上面主要是先通过获取登录的xml文件,判断是否登录成功。然后在通过预定接口,预定房间,参数在url后面。和上面说的一样,我如果直接把两个url在浏览器直接运行,是可以预定的,但我程序这样写,每次都预定不成功,不知道是不是不再同一个会话中,好像我这样写,登录的信息没保存一样。
那个开发接口的人和我说:在同一个会话中登录了,预订时系统就会有登录信息。。我不知道我改怎么写。求大神帮忙
4 个解决方案
#2
楼上能写个小实例代码看看吗。我之前也查过很多。没思路。
#3
很好理解。
别人的系统肯定会对身份验证的。
你第一个登录成功后,你并没有将cookie或session再次传递到服务器进行预订。所以会失败。
浏览器成功,可能是你在浏览器的地址栏中敲入第一个登录的url,接着再敲入第二个url,这时相关的cookie或session是由浏览器帮你提交的。所以可以成功。
如果对方的是使用会话cookie的话,也很容易让预订不成功。
打开浏览器敲入登录的url.关掉浏览器。
再打开浏览器,再敲入第二个url,此时就不会预订成功了
别人的系统肯定会对身份验证的。
你第一个登录成功后,你并没有将cookie或session再次传递到服务器进行预订。所以会失败。
浏览器成功,可能是你在浏览器的地址栏中敲入第一个登录的url,接着再敲入第二个url,这时相关的cookie或session是由浏览器帮你提交的。所以可以成功。
如果对方的是使用会话cookie的话,也很容易让预订不成功。
打开浏览器敲入登录的url.关掉浏览器。
再打开浏览器,再敲入第二个url,此时就不会预订成功了
#4
那就很遗憾了。这个问题我认为上述链接中有着很多代码,而且基本上都是对的,我根本不能写出更清晰、更实用的代码!
#1
#2
楼上能写个小实例代码看看吗。我之前也查过很多。没思路。
#3
很好理解。
别人的系统肯定会对身份验证的。
你第一个登录成功后,你并没有将cookie或session再次传递到服务器进行预订。所以会失败。
浏览器成功,可能是你在浏览器的地址栏中敲入第一个登录的url,接着再敲入第二个url,这时相关的cookie或session是由浏览器帮你提交的。所以可以成功。
如果对方的是使用会话cookie的话,也很容易让预订不成功。
打开浏览器敲入登录的url.关掉浏览器。
再打开浏览器,再敲入第二个url,此时就不会预订成功了
别人的系统肯定会对身份验证的。
你第一个登录成功后,你并没有将cookie或session再次传递到服务器进行预订。所以会失败。
浏览器成功,可能是你在浏览器的地址栏中敲入第一个登录的url,接着再敲入第二个url,这时相关的cookie或session是由浏览器帮你提交的。所以可以成功。
如果对方的是使用会话cookie的话,也很容易让预订不成功。
打开浏览器敲入登录的url.关掉浏览器。
再打开浏览器,再敲入第二个url,此时就不会预订成功了
#4
那就很遗憾了。这个问题我认为上述链接中有着很多代码,而且基本上都是对的,我根本不能写出更清晰、更实用的代码!