Java HTTP接口

服务端发布接口

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);
	}
}







猜你喜欢

转载自blog.csdn.net/shfei10100/article/details/69391673
今日推荐