关于在后台访问web的问题
例子:正常在ie上访问的路径如下:
1。登陆页面,输入用户名和密码,提交
2。登陆成功后的主页面,在主页面上有查询条件的输入框,输入查询条件
3。得到查询结果页面
问题:
我想在后台通过查询条件得到结果,应该怎么办?能不能在后台模拟到登陆?
问题点数:100、回复次数:13Top
1 楼ecaol(大家先别冲动,此事还须从长计议。)回复于 2004-09-03 16:49:33 得分 20
UPTop
2 楼spfft007(自由鸟)回复于 2004-09-04 20:58:13 得分 0
anybody can help me?Top
3 楼minghuitian(明月)回复于 2004-09-06 22:13:42 得分 20
这个应该可以做到吧,你可以将查询条件输入到数据库中查询,然后把结果保留一份就可以了吧?Top
4 楼spfft007(自由鸟)回复于 2004-09-06 23:42:20 得分 0
我说的后台是指单独的控制台程序Top
5 楼spfft007(自由鸟)回复于 2004-09-08 14:27:39 得分 0
upTop
6 楼spfft007(自由鸟)回复于 2004-09-09 09:38:30 得分 0
upTop
7 楼Ronanljy(双重人格)回复于 2004-09-09 10:53:11 得分 10
你想问什么啊?Top
8 楼spfft007(自由鸟)回复于 2004-09-09 14:18:38 得分 0
to Ronanljy(心灵风暴)
问的是在控制台程序里访问网页的问题
应该用过URL这个类吧?
我用它的时候每次请求都会产生新的session,
如何让我的多次的请求都是在同一个session内呢?Top
9 楼zcjl()回复于 2004-09-09 14:39:25 得分 20
试试用一下webclientTop
10 楼pigo()回复于 2004-09-09 15:23:44 得分 30
模拟浏览器使用httpunit
一下是登录csdn的代码。
import com.meterware.httpunit.*;
private WebConversation crtwebclient = new WebConversation();
/**
* login
*
* @param username String
* @param password String
* @param cookietime String 保存cookie的时间只允许0,7,300三个值
* @return boolean
*/
public boolean logon(String username, String password, String cookietime) {
// this.pmwq = null;
com.meterware.httpunit.PostMethodWebRequest pmwq = new com.meterware.
httpunit.PostMethodWebRequest("http://www.csdn.net/member/logon.asp");
//pmwq.setParameter("name", username);
//pmwq.setParameter("pass", password);
pmwq.setParameter("login_name", username);
pmwq.setParameter("password", password);
pmwq.setParameter("from", "http://community.csdn.net/expert/forum.asp");
pmwq.setParameter("cookietime", cookietime);
pmwq.setParameter("x", "0");
pmwq.setParameter("y", "0");
this.getCrtwebclient().setHeaderField("Referer",
"http://www.csdn.net/member/logon.asp");
try {
WebResponse wponse = this.getCrtwebclient().sendRequest(pmwq);
System.out.println("得到的回复是:" +
new String(wponse.getText().getBytes("iso-8859-1"),
"GBK"));
System.out.println("得到的回复是:" + wponse.getText());
String[] csdncookies = getCrtwebclient().getCookieNames();
for (int i = 0; i < csdncookies.length; i++) {
cookies.put(csdncookies[i],
getCrtwebclient().getCookieValue(csdncookies[i]));
System.out.println("Cookie 名字:" + csdncookies[i] + "值为:" +
getCrtwebclient().getCookieValue(csdncookies[i]));
}
if (wponse.getContentLength() > 200) {
this.setCrtpass(password);
this.setLogined(true);
}
return wponse.getContentLength() > 200;
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
Top
11 楼spfft007(自由鸟)回复于 2004-09-10 11:00:29 得分 0
upTop
12 楼spfft007(自由鸟)回复于 2004-09-10 16:04:35 得分 0
upTop
13 楼spfft007(自由鸟)回复于 2004-10-15 14:55:00 得分 0
upTop




