|
1、传入参数对象化
- public class Param {
-
- String no;//编号
- String name;//姓名
- String age;//年龄
- String sex;//性别
- String expResu;//期望结果
- String actResu;//实际结果
- String pass;//是否通过
- String desc;//描述
- .......
- }
复制代码
2、使用Excel储存数据,表格如下
3、用poi读取和写入数据,这里我们封装一个ExcelUtil类,代码如下
- public class ExcelUtil {
-
- //读取Excel中数据
- public static List<Param> read() throws Exception{
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet();
- HSSFRow row = s.createRow(0);
- HSSFCell cell = row.createCell((int)0,0);
- //------------从xls读出数据
- wb = new HSSFWorkbook(new FileInputStream("D:\\learn\\test.xls"));
- s = wb.getSheetAt(0);
-
- //获得EXCEL行数
- int rowNums=s.getLastRowNum();
- //获得Excell列数
- //int columnNum=r.getPhysicalNumberOfCells();
-
- List<Param> params=new ArrayList<Param>();
- for(int i=1;i<=rowNums;i++){
- HSSFRow r = s.getRow(i);
- cell=r.getCell(0);
- Param param= new Param();
- param.setNo(r.getCell(0).getStringCellValue());
- param.setName(r.getCell(1).getStringCellValue());
- param.setAge(r.getCell(2).getStringCellValue());
- param.setSex(r.getCell(3).getStringCellValue());
- param.setExpResu(r.getCell(4).getStringCellValue());
- // System.out.println(cell.getRichStringCellValue());
- params.add(param);
- }
- return params;
- }
- /**
- * 写入Excel,在任意坐标处写入数据。
- * String value:你要输入的内容
- * int x :行坐标,Excel从 0 算起
- * int y :列坐标,Excel从 0 算起
- */
- public static void writeCell(String filePath,int x,int y,String value) {
- try {
- // 创建Excel的工作书册 Workbook,对应到一个excel文档
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));
- HSSFSheet sheet=wb.getSheetAt(0);
- HSSFRow row=sheet.getRow(x);
- HSSFCell cell=row.getCell((short) y);
- cell.setCellValue(value);
- FileOutputStream os;
- os = new FileOutputStream(filePath);
- wb.write(os);
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码
4、客户端代码如下:
- public class TestClient {
-
- public static void main(String[]agrs){
- TestClient a=new TestClient();
- try {
- a.client();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public void client() throws Exception{
-
- List<Param> params = ExcelUtil.read();
- for(Param pa:params){
- try {
- // 接报文的地址
- String param= new JsonsUtil().BuildJson(pa);
- URL serverUrl= new URL("http://localhost:8090/lctest/TestServer");
- URLConnection uct= serverUrl.openConnection();
- HttpURLConnection hutc=(HttpURLConnection)uct;
- // 设置报文参数
- hutc.setRequestMethod("POST");
-
- // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 http正文内,因此需要设为true, 默认情况下是false;
- hutc.setDoOutput(true);
-
- // 设置是否从httpUrlConnection读入,默认情况下是true
- hutc.setDoInput(true);
- // hutc.setAllowUserInteraction(true);
-
- // 开启流,写入数据data
- OutputStream out=hutc.getOutputStream();
-
- out.write(param.getBytes("UTF-8"));
- out.flush();
- out.close();
-
- // 获取返回的数据
- StringBuffer buffer=new StringBuffer();
- BufferedReader reader = null;
- InputStream ins=hutc.getInputStream();
- reader = new BufferedReader(new InputStreamReader(ins,"UTF-8"));
- String sg=reader.readLine();
- if (sg!= null){
- buffer.append(sg);
- }
- System.out.println("接收返回值:" + buffer);
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
-
- }
- }
复制代码
5、服务端代码如下:
- public class TestServer extends HttpServlet {
- private static final long serialVersionUID = 1L;
- private static JSONArray ja;
-
- /**
- * @see HttpServlet#HttpServlet()
- */
- public TestServer() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- try {
- this.excute(request, response);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- try {
- this.excute(request, response);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public void excute(HttpServletRequest request,HttpServletResponse response) throws Exception{
- request.setCharacterEncoding("utf-8");
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/xml");
- String method=request.getMethod();
- String url=request.getRequestURI();
- String param;
- // 获取收到的报文
- BufferedReader reader = request.getReader();
- String line = "";
- line = reader.readLine();
- ja=new JsonsTest().ParseJson(line);
- StringBuffer resultBuffer=new StringBuffer();
- resultBuffer.append("访问方式"+method+"访问成功");
- resultBuffer.append("接收到的数据:"+line+"name: "+ja.getJSONObject(0).getString("name"));
- PrintWriter out =response.getWriter();
- out.println(resultBuffer.toString());
- out.flush();
- out.close();
-
- }
- }
复制代码
6、客户端调取服务端,运行结果如下:
|
|