我需要使用来自 asp webservice 的 java jsoup 获取一些信息。我也读过链接:jsoup 张贴和 cookie,但我仍然感到困惑。这是我的代码:
//1.Create connection to server
Connection.Response res = Jsoup.connect("http://www.server.com/user.aspx?lang=en-us")
.timeout(50000).data("{\"userid\":\"subagent01\",\"password\":\"mypassword\"}", "")
.method(Method.POST)
.execute();
Map<String, String> cookies = res.cookies();
Document doc = res.parse();
//2.Get information form server
String fAddressUrl = "http://www.server.com/WebService/Service.asmx/getSchedule?fromCity=CityA&toCity=CityB";
Document doc2 = Jsoup.connect(fAddressUrl).cookies(cookies).get();
System.out.println(doc2);
我得到了这个回复:
<html>
<head></head>
<body>
<string xmlns="http://tempuri.org/">
Error, session is session_expired
</string>
</body>
</html>
如果还尝试在 Web 浏览器中直接调用该 URL(“ http://www.server.com/WebService/Service.asmx/getSchedule?fromCity=CityA&toCity=CityB ”),结果如下:
1. 登录首先在 www.server.com
-> 成功。我在网络浏览器中获得了信息
2.没有在 www.server.com 上登录
-> 失败。显示相同的错误“错误,会话已过期”。
那么,问题是什么?