精华内容
下载资源
问答
  • 2016-12-28 16:19:19
    1、get

    public static String doGet(String strUrl ){
    String strReturn="";
    HttpGet httpGet = new HttpGet(strUrl);
    CloseableHttpClient httpclient = null;
    CloseableHttpResponse response1=null;
    try {
    httpclient = HttpClients.createDefault();
    response1 = httpclient.execute(httpGet);
    HttpEntity entity1 = response1.getEntity();
    strReturn=EntityUtils.toString(entity1) ;
    EntityUtils.consume(entity1);
    }catch(Exception e){
    e.printStackTrace();
    }finally {
    try {
    if(response1!=null)
    response1.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return strReturn;
    }

    2、put

    public static String doPut(String strUrl,String param){
    CloseableHttpClient httpclient = HttpClients.createDefault();
    String strReturn="";
    PutMethod httpput=new PutMethod(strUrl);
    try {
    if(param!=null)
    {
    RequestEntity entity = new StringRequestEntity(param, "application/json", "UTF-8");
    httpput.setRequestEntity(entity);
    }
    httpClient.executeMethod(httpput);
    byte[] bytes = httpput.getResponseBody();
    strReturn= new String(bytes) ;
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return strReturn;
    }

    3、post

    public static String doPost(String requestUrl, String payload) {
    CloseableHttpClient httpclient = HttpClients.createDefault();
    String strReturn="";
    PostMethod httpost = new PostMethod(requestUrl);
    try {
    if(payload!=null)
    {
    RequestEntity entity = new StringRequestEntity(payload, "application/json", "UTF-8");
    httpost.setRequestEntity(entity);
    }
    httpClient.executeMethod(httpost);
    byte[] bytes = httpost.getResponseBody();
    strReturn= new String(bytes) ;
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return strReturn;
    }

    4、delete

    public static void doDelete(String urlToRead) throws Exception {
    URL url = new URL(urlToRead);
    HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
    httpCon.setDoOutput(true);
    httpCon.setRequestProperty(
    "Content-Type", "application/x-www-form-urlencoded" );
    httpCon.setRequestMethod("DELETE");
    httpCon.connect();
    httpCon.disconnect();

    }
    更多相关内容
  • java实现get类型接口调用

    千次阅读 2020-02-18 20:18:02
    GET: (一)GET通常用于获取服务端数据。 常见发起GET请求的方式有:URL 、src/href、表单(form)。 (二)GET方式提交数据的格式: 格式:index.php?userName=jack&password=123 (注意:index....

    GET:

    		(一)GET通常用于获取服务端数据。
    		常见发起GET请求的方式有:URL 、src/href、表单(form)。
    		(二)GET方式提交数据的格式:
    		格式:index.php?userName=jack&password=123 (注意:index.php?key=value&key=value。 userName=jack&password=123 叫做查询字符串)
    		参数名与参数值之间没有空格
    		参数值不需要使用单双引号包括
    		(三)GET方式提交数据特点:
    		1、get方式在url后面拼接参数,只能以文本的形式传递参数。
    		2、传递的数据量小,4kb左右(不同浏览器会有差异)。
    		3、安全性低,会将信息显示在地址栏。
    		4、速度快,通常用于对安全性要求不高的请求
    

    (四)用java实现简单的get请求。

    /**
    	 * 无参数的get请求
    	 * 
    	 * @param uri 接口地址
    	 */
    	public static String doGet(String uri) {
    		try {
    //		 * 1、创建request连接.
    			HttpGet get = new HttpGet(uri);
    			// 设置请求头
    			get.setHeader(Constants.HEADER_MEDIA_TYPE_NAME, Constants.HEADER_MEDIA_TYPE_VALUE);
    			// 创建一个客户端
    			HttpClient client = HttpClients.createDefault();
    			// 发送请求,并接受响应
    			HttpResponse response = client.execute(get);
    			// 获取接口响应封装到一个方法中,方便调用,返回body
    			return getResult(response);
    		} catch (ClientProtocolException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 * 带参数的get请求,参数为map
    	 * 
    	 * @param uri 接口地址
    	 * @param map 接口参数
    	 */
    	public static String doGet(String uri, Map<String, String> mapParams) {
    		try {
    			// 在uri上拼接参数2.那么一个完整的url地址,基本格式如下:
    			// https://host:port/path?xxx=aaa&ooo=bbb
    			Set<String> keySet = mapParams.keySet();
    			int i = 0;
    			for (String key : keySet) {
    				if (i == 0) {
    					uri = uri + "?" + key + "=" + mapParams.get(key);
    				} else {
    					uri = uri + "&" + key + "=" + mapParams.get(key);
    				}
    				i++;
    			}
    			// 创建一个get请求
    			HttpGet get = new HttpGet(uri);
    			// 设置请求头
    			get.addHeader(Constants.HEADER_MEDIA_TYPE_NAME, Constants.HEADER_MEDIA_TYPE_VALUE);
    			get.addHeader(Constants.CONTENT_TYPE, Constants.CONTENT_TYPE_FORM);
    			// 创建一个客户端
    			HttpClient client = HttpClients.createDefault();
    			// 客户端发送请求,接受响应
    			HttpResponse response = client.execute(get);
    			return getResult(response);
    		} catch (ClientProtocolException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    	/**
    	 * 获取响应结果
    	 * 
    	 * @param response
    	 * @return
    	 * @throws IOException
    	 */
    	public static String getResult(HttpResponse response) throws IOException {
    		// 获取状态码
    		int code = response.getStatusLine().getStatusCode();
    		System.out.println(code);
    		// 获取body
    		HttpEntity entity = response.getEntity();
    		String body = EntityUtils.toString(entity);
    		System.out.println(body);
    		// 获取头信息
    		Header[] allHeaders = response.getAllHeaders();
    		String headers = Arrays.toString(allHeaders);
    		System.out.println(headers);
    
    		// 返回body
    		return body;
    	}
    
    展开全文
  • java实现httpget和httppost请求jar包

    热门讨论 2014-04-25 09:49:03
    利用这两个jar包,很简单的用java实现httpget和httppost请求。
  • JAVAGET和POST请求实现方式

    万次阅读 多人点赞 2018-03-15 16:41:30
    一、介绍使用Java实现GET和POST请求的方法常用的有两种:HTTPClient和HttpURLConnection。前者是第三方开源框架实现,对HTTP请求的封装很好,使用HTTPClient基本可以满足工作需要,其中HTTPClient3.1是org.apache....

    一、介绍

    使用Java实现GET和POST请求的方法常用的有两种:HTTPClient和HttpURLConnection。前者是第三方开源框架实现,对HTTP请求的封装很好,使用HTTPClient基本可以满足工作需要,其中HTTPClient3.1是org.apache.commons.httpclient下操作远程url的工具包,HTTPClient4.5.5是org.apache.http.client下操作远程url的工具包。而HttpURLConnection是java的标准请求方式。

    二、实现

    1.HttpURLConnection原生实现方式:

    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class HttpClient {
        public static String doGet(String httpurl) {
            HttpURLConnection connection = null;
            InputStream is = null;
            BufferedReader br = null;
            String result = null;// 返回结果字符串
            try {
                // 创建远程url连接对象
                URL url = new URL(httpurl);
                // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
                connection = (HttpURLConnection) url.openConnection();
                // 设置连接方式:get
                connection.setRequestMethod("GET");
                // 设置连接主机服务器的超时时间:15000毫秒
                connection.setConnectTimeout(15000);
                // 设置读取远程返回的数据时间:60000毫秒
                connection.setReadTimeout(60000);
                // 发送请求
                connection.connect();
                // 通过connection连接,获取输入流
                if (connection.getResponseCode() == 200) {
                    is = connection.getInputStream();
                    // 封装输入流is,并指定字符集
                    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                    // 存放数据
                    StringBuffer sbf = new StringBuffer();
                    String temp = null;
                    while ((temp = br.readLine()) != null) {
                        sbf.append(temp);
                        sbf.append("\r\n");
                    }
                    result = sbf.toString();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != br) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
    
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
    
                connection.disconnect();// 关闭远程连接
            }
    
            return result;
        }
    
        public static String doPost(String httpUrl, String param) {
    
            HttpURLConnection connection = null;
            InputStream is = null;
            OutputStream os = null;
            BufferedReader br = null;
            String result = null;
            try {
                URL url = new URL(httpUrl);
                // 通过远程url连接对象打开连接
                connection = (HttpURLConnection) url.openConnection();
                // 设置连接请求方式
                connection.setRequestMethod("POST");
                // 设置连接主机服务器超时时间:15000毫秒
                connection.setConnectTimeout(15000);
                // 设置读取主机服务器返回数据超时时间:60000毫秒
                connection.setReadTimeout(60000);
    
                // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
                connection.setDoOutput(true);
                // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
                connection.setDoInput(true);
                // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
                connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
                // 通过连接对象获取一个输出流
                os = connection.getOutputStream();
                // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
                os.write(param.getBytes());
                // 通过连接对象获取一个输入流,向远程读取
                if (connection.getResponseCode() == 200) {
    
                    is = connection.getInputStream();
                    // 对输入流对象进行包装:charset根据工作项目组的要求来设置
                    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    
                    StringBuffer sbf = new StringBuffer();
                    String temp = null;
                    // 循环遍历一行一行读取数据
                    while ((temp = br.readLine()) != null) {
                        sbf.append(temp);
                        sbf.append("\r\n");
                    }
                    result = sbf.toString();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != br) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != os) {
                    try {
                        os.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                // 断开与远程地址url的连接
                connection.disconnect();
            }
            return result;
        }
    }

    2.java原生HttpClient3.1

    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    
    public class HttpClient3 {
    
        public static String doGet(String url) {
            // 输入流
            InputStream is = null;
            BufferedReader br = null;
            String result = null;
            // 创建httpClient实例
            HttpClient httpClient = new HttpClient();
            // 设置http连接主机服务超时时间:15000毫秒
            // 先获取连接管理器对象,再获取参数对象,再进行参数的赋值
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
            // 创建一个Get方法实例对象
            GetMethod getMethod = new GetMethod(url);
            // 设置get请求超时为60000毫秒
            getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
            // 设置请求重试机制,默认重试次数:3次,参数设置为true,重试机制可用,false相反
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true));
            try {
                // 执行Get方法
                int statusCode = httpClient.executeMethod(getMethod);
                // 判断返回码
                if (statusCode != HttpStatus.SC_OK) {
                    // 如果状态码返回的不是ok,说明失败了,打印错误信息
                    System.err.println("Method faild: " + getMethod.getStatusLine());
                } else {
                    // 通过getMethod实例,获取远程的一个输入流
                    is = getMethod.getResponseBodyAsStream();
                    // 包装输入流
                    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    
                    StringBuffer sbf = new StringBuffer();
                    // 读取封装的输入流
                    String temp = null;
                    while ((temp = br.readLine()) != null) {
                        sbf.append(temp).append("\r\n");
                    }
    
                    result = sbf.toString();
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != br) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                // 释放连接
                getMethod.releaseConnection();
            }
            return result;
        }
    
        public static String doPost(String url, Map<String, Object> paramMap) {
            // 获取输入流
            InputStream is = null;
            BufferedReader br = null;
            String result = null;
            // 创建httpClient实例对象
            HttpClient httpClient = new HttpClient();
            // 设置httpClient连接主机服务器超时时间:15000毫秒
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
            // 创建post请求方法实例对象
            PostMethod postMethod = new PostMethod(url);
            // 设置post请求超时时间
            postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
    
            NameValuePair[] nvp = null;
            // 判断参数map集合paramMap是否为空
            if (null != paramMap && paramMap.size() > 0) {// 不为空
                // 创建键值参数对象数组,大小为参数的个数
                nvp = new NameValuePair[paramMap.size()];
                // 循环遍历参数集合map
                Set<Entry<String, Object>> entrySet = paramMap.entrySet();
                // 获取迭代器
                Iterator<Entry<String, Object>> iterator = entrySet.iterator();
    
                int index = 0;
                while (iterator.hasNext()) {
                    Entry<String, Object> mapEntry = iterator.next();
                    // 从mapEntry中获取key和value创建键值对象存放到数组中
                    try {
                        nvp[index] = new NameValuePair(mapEntry.getKey(),
                                new String(mapEntry.getValue().toString().getBytes("UTF-8"), "UTF-8"));
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    index++;
                }
            }
            // 判断nvp数组是否为空
            if (null != nvp && nvp.length > 0) {
                // 将参数存放到requestBody对象中
                postMethod.setRequestBody(nvp);
            }
            // 执行POST方法
            try {
                int statusCode = httpClient.executeMethod(postMethod);
                // 判断是否成功
                if (statusCode != HttpStatus.SC_OK) {
                    System.err.println("Method faild: " + postMethod.getStatusLine());
                }
                // 获取远程返回的数据
                is = postMethod.getResponseBodyAsStream();
                // 封装输入流
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    
                StringBuffer sbf = new StringBuffer();
                String temp = null;
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp).append("\r\n");
                }
    
                result = sbf.toString();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != br) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                // 释放连接
                postMethod.releaseConnection();
            }
            return result;
        }
    }

    3.java原生httpClient4.5

    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    public class HttpClient4 {
    
        public static String doGet(String url) {
            CloseableHttpClient httpClient = null;
            CloseableHttpResponse response = null;
            String result = "";
            try {
                // 通过址默认配置创建一个httpClient实例
                httpClient = HttpClients.createDefault();
                // 创建httpGet远程连接实例
                HttpGet httpGet = new HttpGet(url);
                // 设置请求头信息,鉴权
                httpGet.setHeader("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
                // 设置配置请求参数
                RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 连接主机服务超时时间
                        .setConnectionRequestTimeout(35000)// 请求超时时间
                        .setSocketTimeout(60000)// 数据读取超时时间
                        .build();
                // 为httpGet实例设置配置
                httpGet.setConfig(requestConfig);
                // 执行get请求得到返回对象
                response = httpClient.execute(httpGet);
                // 通过返回对象获取返回数据
                HttpEntity entity = response.getEntity();
                // 通过EntityUtils中的toString方法将结果转换为字符串
                result = EntityUtils.toString(entity);
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != response) {
                    try {
                        response.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != httpClient) {
                    try {
                        httpClient.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return result;
        }
    
        public static String doPost(String url, Map<String, Object> paramMap) {
            CloseableHttpClient httpClient = null;
            CloseableHttpResponse httpResponse = null;
            String result = "";
            // 创建httpClient实例
            httpClient = HttpClients.createDefault();
            // 创建httpPost远程连接实例
            HttpPost httpPost = new HttpPost(url);
            // 配置请求参数实例
            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 设置连接主机服务超时时间
                    .setConnectionRequestTimeout(35000)// 设置连接请求超时时间
                    .setSocketTimeout(60000)// 设置读取数据连接超时时间
                    .build();
            // 为httpPost实例设置配置
            httpPost.setConfig(requestConfig);
            // 设置请求头
            httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
            // 封装post请求参数
            if (null != paramMap && paramMap.size() > 0) {
                List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                // 通过map集成entrySet方法获取entity
                Set<Entry<String, Object>> entrySet = paramMap.entrySet();
                // 循环遍历,获取迭代器
                Iterator<Entry<String, Object>> iterator = entrySet.iterator();
                while (iterator.hasNext()) {
                    Entry<String, Object> mapEntry = iterator.next();
                    nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
                }
    
                // 为httpPost设置封装好的请求参数
                try {
                    httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
            try {
                // httpClient对象执行post请求,并返回响应参数对象
                httpResponse = httpClient.execute(httpPost);
                // 从响应对象中获取响应内容
                HttpEntity entity = httpResponse.getEntity();
                result = EntityUtils.toString(entity);
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != httpResponse) {
                    try {
                        httpResponse.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != httpClient) {
                    try {
                        httpClient.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return result;
        }
    }
    传入的参数是json或者其他格式需要更改请求头及参数的设置信息,httpPost.setEntity(new StringEntity("你的json串"));       httpPost.addHeader("Content-Type", "application/json")。
    展开全文
  • Java实现发送Get和Post请求

    千次阅读 2017-12-15 21:44:11
    前言 已经有几天没有写博客了 , 原因是最近生活中有大量的事情, 尽管每天都在学习 , 但是却没有将知识点记录在博客中 , 感觉这样非常不好 . 以后一定要坚持写博客 , ...Java发送Get请求 代码Java创建代理连接对象 /**

    前言

    已经有几天没有写博客了 , 原因是最近生活中有大量的事情, 尽管每天都在学习 , 但是却没有将知识点记录在博客中 , 感觉这样非常不好 .

    • 以后一定要坚持写博客 , 记录自己成长历程
    • 希望可以在这里找到一些志同道合的朋友 , 一起努力 , 一起进步.

    总结归类

    1. Java创建代理连接对象
    2. Java发送Post请求
    3. Java发送Get请求

    代码

    Java创建代理连接对象

        /**
         * 1.返回代理对象
         * @param proxyIp
         * @param proxyPort
         * @return
         */
        public Proxy setProxy(String proxyIp , int proxyPort ){
            try{
                InetSocketAddress socketAddress 
                    = new InetSocketAddress(proxyIp , proxyPort );
                Proxy proxy = new Proxy(Proxy.Type.HTTP , socketAddress );
                return proxy;
            }catch(Exception e ){
                e.printStackTrace();
            }
            return null;
        }
    

    Java发送Get请求

        /**
         * 2.发送Get请求
         * @param url   
         * @param params        
         * 表示链接后面的一些参数 如name=ghoset&pass=ghoset
         * @return
         */
        public String sendGet(String url , String params ) throws Exception {
            StringBuilder builder = new StringBuilder();
    
            if(params != null || params.length() != 0  ){
                url = url + "?" + params;   //重新构造URL链接 
            }
            URL Url  = new URL(url );
            URLConnection conn =  Url.openConnection();
            // 设置代理
            //URLConnection conn = Url.openConnection(setProxy(proxyHost, proxyPort));
            // 如果需要设置代理账号密码则添加下面一行
            //conn.setRequestProperty("Proxy-Authorization", "Basic "+Base64.encode("account:password".getBytes()));
    
            //发送数据包(可以直接抓取浏览器数据包然后复制)
            conn.setRequestProperty("accept", "*/*" );
            conn.setRequestProperty("Connection", "Keep-Alive" );
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36");
    
            conn.connect();
    
            //接收响应的数据包
            Map<String , List<String > > map = conn.getHeaderFields();
            Set<String > set = map.keySet();
            for(String k : set ){
                String v = conn.getHeaderField(k );
                System.out.println(k + ":" + v  );
            }
    
    
            //返回浏览器的输出信息
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream() ));
            String line = reader.readLine();
            line = new String(line.getBytes() , "gbk" );
            //实现将字符串转成gbk类型显示.
            while(line != null ){
                builder.append(line +"\r\n" );
                System.out.println(line );
                line = reader.readLine();
            }
    
            //释放资源
            reader.close();
    
            return builder.toString();
        }
    

    Java发送Post请求

    /**
         * 3.发送POST请求
         * @param url
         * @param params
         * @param forData
         * @return
         * @throws Exception
         */
        public String sendPost(String url , String params  , String formData) throws Exception{
    
            StringBuilder builder = new StringBuilder();
    
            if(!(params == null || params.length() == 0) ){
                url += ("?" + params ); 
            }
    
            URL Url = new URL(url );
            URLConnection conn = Url.openConnection();
    
            //如果设置代理 , 和发送GET一样.
            conn.setRequestProperty("accept", "*/*" );
            conn.setRequestProperty("Connection", "Keep-Alive" );
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36");
    
            //设置之后就可以发送POST请求了
            conn.setDoInput(true );
            conn.setDoOutput(true );
    
    
            //获取它的输出流 , 直接写入post请求
            PrintWriter writer = new PrintWriter(conn.getOutputStream() );
            writer.print(formData );                                    
            writer.flush();
    
    
            //获取浏览器的返回数据
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream() ) );
            String line = reader.readLine();
            line = new String(line.getBytes() , "utf-8" );  //解决乱码的问题
            while(line != null ){
                System.out.println(line );
                builder.append(line + "\r\n" );
                line = reader.readLine();
            }
            reader.close();
            writer.close();
    
    
            return builder.toString();
        }

    测试方法

        public static void main(String[] args) {
            HttpRequestUtil request = new HttpRequestUtil();
            try{
                Proxy proxy = request.setProxy(InetAddress.getLocalHost().getHostAddress() , 8888 );
            System.out.println(proxy );
        //Get请求             
        request.sendGet("http://localhost/review/html/index.php", "username=ghoset&password=ghoset" );
    
        //Post请求    
                String formData = "username=ghoset&password=ghoset";
                String rs = request.sendPost("http://localhost/review/java/index.php", null , formData );
    
            }catch(Exception e ){
                e.printStackTrace();
            }
    
    展开全文
  • JAVA 调用HTTP接口POST或GET实现方式,java通用
  • 使用java实现HTTP的GET请求

    千次阅读 2020-05-12 11:33:03
    在前几节我们详细讲解了http协议的相关信息,基于“知行合一”的原则,只有通过具体动手实践才有可能检验知识点被我们真正掌握,本节我们就使用代码实现http的get请求。 首先需要一个http服务器,基于简单原则,我...
  • 使用 org.apache.http.impl.client.HttpClients 这么滴就可以实现get请求传递参数啦 但是现在需求是要往请求的header里面传cookie。 怎么Java代码实现? 关键代码 CloseableHttpClient httpCl...
  • Java实现HTTP Get请求

    千次阅读 2018-11-14 15:28:02
    import org.apache.http.HttpEntity; import org.apache.... import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; ...
  • java 后台实现get post 提交访问其他网站
  • java使用HttpGet下载文件

    千次阅读 2017-06-26 17:31:03
    java下载文件
  • java实现URL带参数请求(get/post)

    千次阅读 2021-02-26 20:21:08
    param 为aaa=111&bbb=222.....格式-------------------------------------------------public static String sendGet(String url,String param){String result = "";try{String urlName = url + "?...
  • JAVAget()和get()的用法,和意义?

    千次阅读 2021-02-27 07:51:22
    展开全部 面向对象最重要的特性之一是封32313133353236313431303231363533e4b893e5b19e... 作为静态面向对象编程语言的代表,Java语言很好地实现了面向对象理论,允许程序员以一种优雅的思维方式进行复杂的编程。
  • 主函数代码块: HttpClient httpClient = HttpClientBuilder.create().build(); // Get请求 URIBuilder uriBuilder = new URIBuilder(payurl); if (StringUtils.isNotEmpty(reqJson))...
  • JAVA get set用法

    千次阅读 2021-02-12 22:16:44
    对于JAVA初学者来说,set和get这两个方法似乎已经很熟悉了,这两个方法是JAVA变成中的基本用法,也是出现频率相当高的两个方法。为了让JAVA初学者能更好的理解这两个方法的使用和意义,今天笔者来谈一下自己对这两个...
  • 利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpget和httppost请求。
  • java实现在线预览--poi实现word、excel、ppt转html

    万次阅读 多人点赞 2019-07-31 18:39:43
    java实现在线预览- -之poi实现word、excel、ppt转html
  • Java实现Json转GET请求字符串

    千次阅读 2020-04-14 19:10:48
    代码: /** * json格式转Get * @param body * @return */ private String jsonToGet(String body){ return body.replace("{", "").replace("}", ""). replace("\"", "")...
  • java实现调用httpclient接口的类和方法,包括了get和post传参方式,简单易懂
  • java get set方法的使用

    千次阅读 2021-02-27 20:32:44
    java get set方法的使用(一)set和get方法一般是用来给类的成员变量赋值的,由于类的成员变量一般会声明为private的,其他的类是不能直接访问成员变量的,所以为了在类以外给该类的成员变量赋值或...
  • java发送http/https请求(get/post)代码

    热门讨论 2016-12-02 15:19:05
    自己项目里的,可用
  • Javaget()和set()的方法使用

    千次阅读 2021-02-12 11:03:26
    Javaget()和set()的方法使用字面意思JAVA面向对象编程中的封闭性和安全性set和get的使用场景例子补充:Java修饰符权限字面意思set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用...
  • Java实现发送http的get和post请求

    万次阅读 2018-01-26 10:16:13
    import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; /** * j
  • java快速生成get/set方法

    千次阅读 2021-06-16 22:55:28
    Student类 package com.my.app.xxx; public class Student { private String name; private int age; private String grade; } 两种方式生成get/set方法 一、IDEA中安装插件 lombok
  • 前言平时测试的时候可能会遇到使用Java发送http或者https请求的需求.网上找了一圈暂时没有发现比较称心方便...主要实现http/https的get和post请求,并支持设置代理抓包.只需要一个Java文件就搞定,不需要第三方库支持.
  • HttpURLConnection实现post public static String getPost(String urls,Map<String, String> params){ String message=""; try { //创建URL实例,打开URLConnection URL url=ne...
  • Java实现http(post、get)请求

    万次阅读 2017-12-13 15:25:16
    protected final Log LOG = LogFactory.getLog(HttpClientUtil.class); private static HttpClientUtil instance; protected Charset charset; private HttpClientUtil(){} public static HttpClientUtil ...
  • Java - get和post请求有什么区别?

    万次阅读 2019-03-16 16:40:23
    get请求用来从服务器上获取资源,而post请求是用来向服务器提交数据; ②get将表单中数据按照name=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接,各个变量之间使用"&amp;&...
  • 1:HttpClient模拟一个get请求的Demo 1.1:Maven添加HttpClient依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <...
  • java发送http get请求的两种方法(总结)

    千次阅读 2021-02-12 10:57:36
    长话短说,废话不说一、第一种方式,通过HttpClient方式,代码如下:public static String httpGet(String url, String charset)throws HttpException, IOException {String json = null;HttpGet httpGet = new ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,671,382
精华内容 668,552
关键字:

java实现get

java 订阅