模拟IE 做dwr 操作!
下面是请求操作:
PostMethod post = new PostMethod("http://localhost:8888/dwr/call/plaincall/messageQueeSgetMessageList.ervice.dwr");
NameValuePair callCount = new NameValuePair("callCount", "1");
NameValuePair page = new NameValuePair("page", "/smodel?model=CNPC_PAGE_MAIN_V2");
NameValuePair scriptName = new NameValuePair("c0-scriptName", "messageQueeService");
NameValuePair httpSessionId = new NameValuePair("httpSessionId", cookie.substring(cookie.indexOf("=")+1,cookie.length()));
NameValuePair methodName = new NameValuePair("c0-methodName", "getMessageList");
NameValuePair id = new NameValuePair("c0-id", "0");
NameValuePair param0 = new NameValuePair("c0-param0", "string:DBSY.DBSYHEAD%3C%3E'%E4%BC%A0%E9%98%85%E4%BB%B6'");
NameValuePair param1 = new NameValuePair("c0-param1", "number:0");
NameValuePair param2 = new NameValuePair("c0-param2", "number:10");
NameValuePair param3 = new NameValuePair("c0-param3","string:gtime%20DESC");
NameValuePair batchId = new NameValuePair("batchId","14");
post.setRequestBody(new NameValuePair[] { callCount,page,scriptName,methodName,id,param0,param1,param2,param3,batchId}); 返回值是:
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "HTTP/1.1 200 OK[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "HTTP/1.1 200 OK[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Date: Tue, 25 May 2010 02:52:31 GMT[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Content-Type: text/javascript; charset=ISO-8859-1[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Content-Length: 327[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Server: Jetty(6.1.11)[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [HttpMethodBase:getResponseBody] - Buffering response body
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "throw 'allowScriptTagRemoting is false.';[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "//#DWR-REPLY[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "if (window.dwr) dwr.engine._remoteHandleBatchException({ name:'java.lang.SecurityException', message:'Session Error' });[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "else if (window.parent.dwr) window.parent.dwr.engine._remoteHandleBatchException({ name:'java.lang.SecurityException', message:'Session Error' });[\r][\n]" 麻烦这方面的专家给点意见。
就要实现用java 模拟IE 请求dwr得到他的返回值。然后再做具体的处理。
下面是请求操作:
PostMethod post = new PostMethod("http://localhost:8888/dwr/call/plaincall/messageQueeSgetMessageList.ervice.dwr");
NameValuePair callCount = new NameValuePair("callCount", "1");
NameValuePair page = new NameValuePair("page", "/smodel?model=CNPC_PAGE_MAIN_V2");
NameValuePair scriptName = new NameValuePair("c0-scriptName", "messageQueeService");
NameValuePair httpSessionId = new NameValuePair("httpSessionId", cookie.substring(cookie.indexOf("=")+1,cookie.length()));
NameValuePair methodName = new NameValuePair("c0-methodName", "getMessageList");
NameValuePair id = new NameValuePair("c0-id", "0");
NameValuePair param0 = new NameValuePair("c0-param0", "string:DBSY.DBSYHEAD%3C%3E'%E4%BC%A0%E9%98%85%E4%BB%B6'");
NameValuePair param1 = new NameValuePair("c0-param1", "number:0");
NameValuePair param2 = new NameValuePair("c0-param2", "number:10");
NameValuePair param3 = new NameValuePair("c0-param3","string:gtime%20DESC");
NameValuePair batchId = new NameValuePair("batchId","14");
post.setRequestBody(new NameValuePair[] { callCount,page,scriptName,methodName,id,param0,param1,param2,param3,batchId}); 返回值是:
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "HTTP/1.1 200 OK[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "HTTP/1.1 200 OK[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Date: Tue, 25 May 2010 02:52:31 GMT[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Content-Type: text/javascript; charset=ISO-8859-1[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Content-Length: 327[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "Server: Jetty(6.1.11)[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [HttpMethodBase:getResponseBody] - Buffering response body
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "throw 'allowScriptTagRemoting is false.';[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "//#DWR-REPLY[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "if (window.dwr) dwr.engine._remoteHandleBatchException({ name:'java.lang.SecurityException', message:'Session Error' });[\r][\n]"
[2010-05-25 10:52:31,703] DEBUG [Wire:wire] - << "else if (window.parent.dwr) window.parent.dwr.engine._remoteHandleBatchException({ name:'java.lang.SecurityException', message:'Session Error' });[\r][\n]" 麻烦这方面的专家给点意见。
就要实现用java 模拟IE 请求dwr得到他的返回值。然后再做具体的处理。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货