我在用别人酒店的接口,也就是请求一个地址,然后返回一个xml文件,我现在要做预定,必须先通过登录url地址接口把帐号和密码请求到服务器返回一个xml是否登录成功,然后在通过预定url地址接口把要预定信息做参数请求服务器返回xml。
如果是直接把参数写好,然后直接在网页地址栏粘贴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&re=好&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在浏览器直接运行,是可以预定的,但我程序这样写,每次都预定不成功,不知道是不是不再同一个会话中,好像我这样写,登录的信息没保存一样。
那个开发接口的人和我说:在同一个会话中登录了,预订时系统就会有登录信息。。我不知道我改怎么写。求大神帮忙
如果是直接把参数写好,然后直接在网页地址栏粘贴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&re=好&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在浏览器直接运行,是可以预定的,但我程序这样写,每次都预定不成功,不知道是不是不再同一个会话中,好像我这样写,登录的信息没保存一样。
那个开发接口的人和我说:在同一个会话中登录了,预订时系统就会有登录信息。。我不知道我改怎么写。求大神帮忙
解决方案 »
- 急,asp.net中的session怎么用
- des加密的问题
- 为什么DataValueField返回的总是第一个值
- 如何用C#实现上传文档到SharePoint2007?用代码实现
- 博客开发中遇到的一些问题,请指教
- 求一方法,求一解答。
- 求一个 MSN效果弹出窗口
- DataSet_1.Tables["表名"].Rows.ReMove删除行的疑问
- 两个小问题,Inherits是什么意思?如:Inherits="exTest.WebForm1"。还有就是.aspx里的按钮怎么和.aspx.vb里的事件连不上?
- 求一份C#收取邮件的源码
- 导出文件如何判断文件导出结束?
- RegisterStartupScript为嘛使用不了
别人的系统肯定会对身份验证的。
你第一个登录成功后,你并没有将cookie或session再次传递到服务器进行预订。所以会失败。浏览器成功,可能是你在浏览器的地址栏中敲入第一个登录的url,接着再敲入第二个url,这时相关的cookie或session是由浏览器帮你提交的。所以可以成功。如果对方的是使用会话cookie的话,也很容易让预订不成功。
打开浏览器敲入登录的url.关掉浏览器。
再打开浏览器,再敲入第二个url,此时就不会预订成功了