服务端发布接口
web.xml配置接口
<!-- HTTPServerTest --> <servlet> <servlet-name>HTTPServerTest</servlet-name> <servlet-class>t9.servicetest.HTTPServerTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>HTTPServerTest</servlet-name> <url-pattern>/httpServer</url-pattern> </servlet-mapping>
简单接口代码
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 net.sf.json.JSONObject; public class HTTPServerTest extends HttpServlet { 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 uid = request.getParameter("uid"); String title = request.getParameter("title"); String content = request.getParameter("content"); //String content = new String(request.getParameter("content").getBytes("iso-8859-1"), "utf-8"); System.out.println(uid+"---"+title+"---"+content); JSONObject jobj = new JSONObject(); jobj.put("result", "1"); jobj.put("code", "010010"); out.println(getStringFromJson(jobj)); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } private static String getStringFromJson(JSONObject adata) { StringBuffer sb = new StringBuffer(); sb.append("{"); for(Object key:adata.keySet()){ sb.append("\""+key+"\":\""+adata.get(key)+"\","); } String rtn = sb.toString().substring(0, sb.toString().length()-1)+"}"; return rtn; } }
客户端接口
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import net.sf.json.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; public class HTTPClientTest { private static Logger log = Logger.getLogger(HTTPClientTest.class); public static String post(String url, Map<String, String> params) { DefaultHttpClient httpclient = new DefaultHttpClient(); String body = null; log.info("create httppost:" + url); HttpPost post = postForm(url, params); body = invoke(httpclient, post); httpclient.getConnectionManager().shutdown(); return body; } public static String get(String url) { DefaultHttpClient httpclient = new DefaultHttpClient(); String body = null; log.info("create httppost:" + url); HttpGet get = new HttpGet(url); body = invoke(httpclient, get); httpclient.getConnectionManager().shutdown(); return body; } private static String invoke(DefaultHttpClient httpclient, HttpUriRequest httpost) { HttpResponse response = sendRequest(httpclient, httpost); String body = paseResponse(response); return body; } private static String paseResponse(HttpResponse response) { log.info("get response from http server.."); HttpEntity entity = response.getEntity(); log.info("response status: " + response.getStatusLine()); String charset = EntityUtils.getContentCharSet(entity); log.info(charset); String body = null; try { body = EntityUtils.toString(entity); log.info(body); } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return body; } private static HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) { log.info("execute post..."); HttpResponse response = null; try { response = httpclient.execute(httpost); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response; } private static HttpPost postForm(String url, Map<String, String> params){ HttpPost httpost = new HttpPost(url); List<NameValuePair> nvps = new ArrayList <NameValuePair>(); Set<String> keySet = params.keySet(); for(String key : keySet) { nvps.add(new BasicNameValuePair(key, params.get(key))); } try { log.info("set utf-8 form entity to httppost"); httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return httpost; } public static void main(String[] args) { String uid="12345678"; String title="test"; String content="test a content"; Map<String, String> params = new HashMap<String, String>(); params.put("uid", uid); params.put("title", title); params.put("content",content); String url="http://127.0.0.1:9090/t9/httpServer"; String conResult = HTTPClientTest.post(url, params); JSONObject sobj = new JSONObject(); sobj = sobj.fromObject(conResult); String result = sobj.getString("result"); String code = sobj.getString("code"); System.out.println(result+"---"+code); log.info(conResult); } }