HttpClient请求接口

HttpClient请求接口

HttpClient传递参数到某ACTION,ACTION调用后台处理好后,
把内容放到request里面,转向到某JSP或者VELOCITY页面,
页面,页面是XML格式的。HttpClient得到结果后,解析XML返回

这样的接口其实有点像前段时间做lazslo是遇到的页面和后台的交互问题。

UserLoginActionTest.java测试程序如下:
package com.megaeyes.ipcamera.test.service;

import java.io.IOException;

import junit.framework.TestCase;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.dom4j.Document;

import com.megaeyes.ipcamera.test.util.XmlFileUtil;

public class UserLoginActionTest extends TestCase {

private static final String ACTION_URL = "http://192.168.10.103/test/UserLoginServiceAction.do?method=userLogonBackService";

public void testDumy() {
assertTrue(true);
}

public void testUserServiceLogon() {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(ACTION_URL);
method.addParameter("userId", "081");
method.addParameter("passWord", "luohua");
method.addParameter("timeStamp", "119874350464068663");
method.addParameter("userToken", "67b7388d0af1c6044a9dc1f7cb0728ef");
try {
client.executeMethod(method);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String returnStr = "";
try {
returnStr = method.getResponseBodyAsString();
} catch (IOException e1) {
e1.printStackTrace();
}finally{

//使用完成后要释放链接
method.releaseConnection();
}
Document doc = XmlFileUtil.getDocumentSaxByXmlStr(returnStr);
System.out.println("Status: " + XmlFileUtil.getStringValue("Status", doc));
System.out.println("ErrorCode: " + XmlFileUtil.getStringValue("ErrorCode", doc));
System.out.println("Message: " + XmlFileUtil.getStringValue("Message", doc));
System.out.println("LogonName: " + XmlFileUtil.getStringValue("LogonName", doc));
System.out.println("SessionId: " + XmlFileUtil.getStringValue("SessionId", doc));
System.out.println("Naming: " + XmlFileUtil.getStringValue("Naming", doc));
}
}

ACTION层的处理代码如下:

public ActionForward userLogonBackService(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setHeader("P3P", "CP=CAO PSA OUR");

String userId = request.getParameter("userId");
String userToken = request.getParameter("userToken");
String timeStamp = request.getParameter("timeStamp");
String remoteIp = request.getRemoteAddr();

UserManager userManager = (UserManager) getBean("userManager");
UserVO user = userManager.getUserVOByID(userId);

if (user != null) {
if (!checkUserServiceInfo(userId, timeStamp, userToken, user)) {
//检查传递的参数出错
request.setAttribute("status", FAIL_TIP);
request.setAttribute("code", PARAMET_ERROR);
request.setAttribute("message", "传递参数校验出错!");
return mapping.findForward("xmlLogonResult");
}
UserSession us=userManager.login(user.getId(), remoteIp);
request.setAttribute("logonName", user.getLogonName());
request.setAttribute("sessionId", us.getId());
request.setAttribute("naming", user.getNaming());
} else {
//没有这个用户
request.setAttribute("status", FAIL_TIP);
request.setAttribute("code", USER_NOT_EXIST);
request.setAttribute("message", "没有这个用户!");
return mapping.findForward("xmlLogonResult");
}
//登陆成功
request.setAttribute("status", SUCCESS_TIP);
return mapping.findForward("xmlLogonResult");
}


转向的最后的JSP页面,其实这个就是XML的模板:

<%@ include file="/common/taglibs.jsp"%>

<root>
<Status>${status}</Status>
<ErrorCode>${code}</ErrorCode>
<Message>${message}</Message>
<LogonName>${logonName}</LogonName>
<SessionId>${sessionId}</SessionId>
<Naming>${naming}</Naming>
</root>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值