天天看點

java建立http接口

1.修改web.xml檔案

<!-- 模拟HTTP的調用,寫的一個http接口  -->

    <servlet>

        <servlet-name>TestHTTPServer</servlet-name>

        <servlet-class>com.atoz.http.SmsHTTPServer</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>TestHTTPServer</servlet-name>

        <url-pattern>/httpServer</url-pattern>

    </servlet-mapping>

2.建立SmsHTTPServer.java檔案

package com.atoz.http;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.atoz.action.order.SendSMSAction;

import com.atoz.util.SpringContextUtil;

public class SmsHTTPServer  extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

  response.setContentType("text/html;charset=utf-8");

     request.setCharacterEncoding("utf-8");

     response.setCharacterEncoding("utf-8");

     PrintWriter out = response.getWriter();

      String content = request.getParameter("content");

       //String content = new String(request.getParameter("content").getBytes("iso-8859-1"), "utf-8"); 

        String mobiles = request.getParameter("mobiles");

        String businesscode = request.getParameter("businesscode");

        String businesstype = request.getParameter("businesstype");

        if (content == null || "".equals(content) || content.length() <= 0) {

         System.out.println("http call failed,參數content不能為空,程式退出");

        } else if (mobiles == null || "".equals(mobiles)

                || mobiles.length() <= 0) {

         System.out.println("http call failed,參數mobiles不能為空,程式退出");

        } else {

         SendSMSAction sendSms = (SendSMSAction) SpringContextUtil.getBean("sendSMS");

         sendSms.sendSms(content, mobiles, businesscode, businesstype);

         System.out.println("---http call success---");

        }

        out.close();

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        this.doGet(request, response);

    }

}

3.調用http接口

String content = "測試";

  content = URLEncoder.encode(content, "utf-8");

  String url = "http://localhost:8180/atoz_2014/httpServer?content=" + content + "&mobiles=15301895007";

  URL httpTest;

  try {

   httpTest = new URL(url);

   BufferedReader in;

   try {

    in = new BufferedReader(new InputStreamReader(

      httpTest.openStream()));

    String inputLine = null;

    String resultMsg = null;

    //得到傳回資訊的xml字元串

    while ((inputLine = in.readLine()) != null)

     if(resultMsg != null){

      resultMsg += inputLine;

     }else {

      resultMsg = inputLine;

     }

    in.close();

   } catch (MalformedURLException e) {

    e.printStackTrace();

   }

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }