首页 javaWEB httpclient 简单例子使用

httpclient 简单例子使用

httpclient 简单例子使用 帮同学搞的我也是醉了 啥需求晕死。。 package com.test.http; …

httpclient 简单例子使用

帮同学搞的我也是醉了 啥需求晕死。。

package com.test.http;


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONException;
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.HttpClient;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

    /**
     * 使用HttpClient模拟HTTP访问
     * @see ===============================================================================================================================
     * @see HttpClient代表了一个HTTP客户端,HttpClient接口中定义了大多数基本的HTTP请求执行行为
     * @see HttpEntity是发送或接收消息的载体,它可以通过HttpResponse.getEntity()获取到
     * @see HttpConnection代表了一个HTTP连接
     * @see ===============================================================================================================================
     */
    public class HttpClientUtil {
        public static void main(String[] args)throws Exception{

            JSONObject json = new JSONObject();
            json.put("username", "yq1012");
            json.put("password", "123456");
            json.put("sss", "123456");
            //参数可以任意加  , 返回任意参数 json.put("xxx", "xxx");
           // System.out.println(json.toString());
            JSONObject  jsonget=HttpClientUtil.getUrl("get", "http://html.javaweb.top", json, "/vote/testReciveMsg.php");
            System.out.println(jsonget);
            JSONObject  jsonpost=HttpClientUtil.getUrl("post", "http://html.javaweb.top", json, "/vote/testReciveMsg.php");
            System.out.println(jsonpost);

        }
        public static JSONObject  getUrl(String method, String host,JSONObject json,String uri){
        	String requestUrl =host+uri;
        	JSONObject jsonobject= new JSONObject();
        	if("post".equals(method)){

        		List<NameValuePair> formParams= new ArrayList<NameValuePair>();
        		formParams.add(new BasicNameValuePair("json", ""+json.toString()));
        		System.out.println(json.toString());
        		/*Map  map= new HashMap<String, String>();
            	map=HttpClientUtil.toMap(json);
            	Iterator it = map.entrySet().iterator();
            	while (it.hasNext()) {
            		Map.Entry entry = (Map.Entry) it.next();
            	    Object key = entry.getKey();
            	    Object value = entry.getValue();
            	 //   System.out.println("key=" + key + " value=" + value);
            		formParams.add(new BasicNameValuePair(""+key, ""+value));

            	}*/
            	jsonobject=sendPostRequest(requestUrl,formParams);

        	}else{
        		String param = json.toString().replace("\"", "%22")
        		        .replace("{", "%7b").replace("}", "%7d");   //特殊字符进行转义
        		requestUrl+="?json="+param;
        		System.out.println(requestUrl);
        		/*Map  map= new HashMap<String, String>();
            	map=HttpClientUtil.toMap(json);
            	Iterator it = map.entrySet().iterator();
            	while (it.hasNext()) {
            		Map.Entry entry = (Map.Entry) it.next();
            	    Object key = entry.getKey();
            	    Object value = entry.getValue();
            	 //   System.out.println("key=" + key + " value=" + value);
            	    requestUrl+=key+"="+value;
            	    requestUrl+="&";
            	}*/
            	jsonobject=sendGetRequest(requestUrl);

        	}
			return jsonobject;

        }



        /**
         * 发送GET请求
         * @param requestUrl 请求的地址(含参数)
         * @return 响应内容
         */
        @SuppressWarnings("finally")
        public static JSONObject sendGetRequest(String requestUrl) {
            JSONObject  json =new JSONObject();
            long responseLength = 0;       //响应长度
            String responseContent = null; //响应内容
            HttpClient httpClient = new DefaultHttpClient(); //创建默认的httpClient实例
            HttpGet httpGet = new HttpGet(requestUrl);       //创建HttpGet
            try {
                HttpResponse response = httpClient.execute(httpGet); //执行GET请求
                HttpEntity entity = response.getEntity();            //获取响应实体
                if (null != entity) {
                    responseLength = entity.getContentLength();
                    responseContent = EntityUtils.toString(entity, "UTF-8");
                    EntityUtils.consume(entity); //Consume response content
                }
               /* System.out.println("请求地址: " + httpGet.getURI());
                System.out.println("响应状态: " + response.getStatusLine());
                System.out.println("响应长度: " + responseLength);
                System.out.println("响应内容: " + responseContent);  */
                json.put("address", httpGet.getURI().getSchemeSpecificPart());
                json.put("code", response.getStatusLine().getStatusCode());
                json.put("length", responseLength);
                json.put("content", responseContent);
            } catch (ClientProtocolException e) {
                //该异常通常是协议错误导致
                //比如构造HttpGet对象时传入的协议不对(将"http"写成"htp")或者服务器端返回的内容不符合HTTP协议要求等
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (IOException e) {
                //该异常通常是网络原因引起的,如HTTP服务器未启动等
                e.printStackTrace();
            } finally {
                httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源
                return json;
            }
        }

        /**
         * 发送带有表单参数的POST请求
         * @param requestUrl 请求的地址(不含参数)
         * @return 响应内容
         */
        @SuppressWarnings("finally")
        public static JSONObject sendPostRequest(String requestUrl,List<NameValuePair> formParams) {
            JSONObject  json =new JSONObject();
        	long responseLength = 0;       //响应长度
            String responseContent = null; //响应内容
            HttpClient httpClient = new DefaultHttpClient();                 //创建默认的httpClient实例
            HttpPost httpPost = new HttpPost(requestUrl);                    //创建HttpPost

            try {
                httpPost.setEntity(new UrlEncodedFormEntity(formParams, "UTF-8"));
                HttpResponse response = httpClient.execute(httpPost); //执行POST请求
                HttpEntity entity = response.getEntity();             //获取响应实体
                if (null != entity) {
                    responseLength = entity.getContentLength();
                    responseContent = EntityUtils.toString(entity, "UTF-8");
                    EntityUtils.consume(entity); //Consume response content
                }
                json.put("address", httpPost.getURI().getSchemeSpecificPart());
                json.put("code", response.getStatusLine().getStatusCode());
                json.put("length", responseLength);
                json.put("content", responseContent);
               /* System.out.println("请求地址: " + httpPost.getURI());
                System.out.println("响应状态: " + response.getStatusLine());
                System.out.println("响应长度: " + responseLength);
                System.out.println("响应内容: " + responseContent);*/
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源
                return json;
            }
        }


    /**
     * 将Json对象转换成Map
     *
     * @param jsonObject
     *            json对象
     * @return Map对象
     * @throws JSONException
     */
    public static Map toMap(JSONObject jsonObject) throws JSONException {

        Map result = new HashMap();
        Iterator iterator = jsonObject.keys();
        String key = null;
        String value = null;

        while (iterator.hasNext()) {

            key = (String) iterator.next();
            value = jsonObject.getString(key);
            result.put(key, value);

        }
        return result;

    }

    /**
     * 根据  json  json 的key  查询对应的value
     * @param jsonObject
     * @param key
     * @return
     * @throws JSONException
     */
    public static Object toEqual(JSONObject jsonObject,String key) throws JSONException {

	    Object o=jsonObject.get(key);
	    return o;

    }

}

 

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

nodejs 整理记录

nodejs 整理记录

下载包 https://blog.csdn.net/m0_59878114/article/details/120274...
websocket测试html

websocket测试html

<!DOCTYPE html> <html> <head> <meta cha...
bigdemical两个数比较大小

bigdemical两个数比较大小

/*int result = bigdemical1.compareTo(bigdemical2) result = -...
Beetl2.7 中文文档

Beetl2.7 中文文档

Beetl目前版本是2.7.23,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等...
纯CSS实现多个便签在一行展示,拖动滚动

纯CSS实现多个便签在一行展示,拖动滚动

div <h2>请注意需要在移动端预览,PC端拖拽无效果</h2> <div class=...
返回顶部