精华内容
下载资源
问答
  • Java发送POST请求

    2019-08-18 13:01:27
    Java发送POST请求 方法体 /** * 向指定 URL发送POST方法的请求 * @param url 发送请求的 URL * @param param 请求参数,请求参数应该是 name1=value1&name2=value2的形式。 * @return 所代表远程资源的...

    Java发送POST请求

    方法体

       
        /**
         * 向指定 URL发送POST方法的请求
         * @param url 发送请求的 URL
         * @param param 请求参数,请求参数应该是 name1=value1&name2=value2的形式。
         * @return 所代表远程资源的响应结果
         */
        public static String sendPost(String url, String param) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
                // 发送请求参数
                out.print(param);
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送 POST请求出现异常!"+e);
                e.printStackTrace();
            }
            //使用finally块来关闭输出流、输入流
            finally{
                try{
                    if(out!=null){
                        out.close();
                    }
                    if(in!=null){
                        in.close();
                    }
                }
                catch(IOException ex){
                    ex.printStackTrace();
                }
            }
            return result;
        }  
        
    

    调用方法

     
     String id=request.getParameter("id");
     String key=request.getParameter("key");
     String type=request.getParameter("type");
     String ip=request.getParameter("ip");
     String gettime=request.getParameter("time");
     String path=request.getParameter("path");  
     
     String result = sendPost("https://baidu.com", "id="+id+"&key="+key+"&type="+type+"&ip="+ip+"&gettime="+gettime+"&path="+path);
     System.out.println(result);
     
    
    展开全文
  • Java 发送post请求

    2020-04-27 17:44:16
    Java 发送post请求 import com.alibaba.fastjson.JSONObject; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclie...

    @羲凡——只为了更好的活着

    Java 发送post请求

    pom依赖
    <dependency>
       <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    
    代码
    import com.alibaba.fastjson.JSONObject;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.methods.StringRequestEntity;
    
    public class PostDemo {
        public static void main(String[] args) {
            String url = "http://XXXXX:XXXX/test";
            JSONObject jsonParam = new JSONObject();
            jsonParam.put("cur_date", "2020-04-27");
            sendPostWithJson(url,jsonParam.toJSONString());
        }
    
        public static String sendPostWithJson(String url, String jsonStr) {
            String jsonResult = "";
            try {
                HttpClient client = new HttpClient();
                client.getHttpConnectionManager().getParams().setConnectionTimeout(3000); // //设置连接超时
                client.getHttpConnectionManager().getParams().setSoTimeout(180000); // //设置读取数据超时
                client.getParams().setContentCharset("UTF-8");
                PostMethod postMethod = new PostMethod(url);
                postMethod.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
                // 非空
                if (null != jsonStr && !"".equals(jsonStr)) {
                    StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, "application/json", "UTF-8");
                    postMethod.setRequestEntity(requestEntity);
                }
                int status = client.executeMethod(postMethod);
                if (status == HttpStatus.SC_OK) {
                    jsonResult = postMethod.getResponseBodyAsString();
                } else {
                    throw new RuntimeException("接口连接失败!");
                }
                if(postMethod != null){
                    postMethod.releaseConnection();
                }
            } catch (Exception e) {
                throw new RuntimeException("接口连接失败!");
            }
            return jsonResult;
        }
    }
    
    

    ====================================================================

    @羲凡——只为了更好的活着

    若对博客中有任何问题,欢迎留言交流

    展开全文
  • Java发送Post请求

    千次阅读 2015-10-20 11:41:28
    1.Java发送Post请求方法,指定Url发送String类型数据,直接从代码里抠出来的,不必要的代码可自行注掉。 /** * post请求 * * @param url * post的url地址 * @param body * 要post的数据 * @return ...

    1.Java发送Post请求方法,指定Url发送String类型数据,直接从代码里抠出来的,不必要的代码可自行注掉。

    /**
    	 * post请求
    	 * 
    	 * @param url
    	 *            post的url地址
    	 * @param body
    	 *            要post的数据
    	 * @return
    	 * @throws IOException
    	 */
    	public static String post(String url, String body)
    	{
    		// 入参校验
    		if (url == null || body == null)
    			return "请填写正确参数!";
    
    		// 构造请求数据
    		Map<String, String> headers = createHeaders(body);
    
    		/*System.out.println("url:\r\n" + url);
    		System.out.println("body:\r\n" + body);
    		System.out.println("headers:\r\n" + headers);*/
    
    		String result = "";
    		try
    		{
    			OutputStreamWriter out = null;
    			BufferedReader in = null;
    			URL realUrl = new URL(url);
    			URLConnection conn = realUrl.openConnection();
    
    			// 添加请求头
    			Set<String> keys = headers.keySet();
    			for (String key : keys)
    			{
    				conn.setRequestProperty(key, headers.get(key));
    			}
    
    			// 设置连接参数
    			conn.setDoOutput(true);
    			conn.setDoInput(true);
    			conn.setConnectTimeout(4000);
    			conn.setReadTimeout(5000);
    
    			// 提交数据
    			out = new OutputStreamWriter(conn.getOutputStream(), "UTF8");
    			out.write(body);
    			out.flush();
    
    			// 读取返回数据
    			in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF8"));
    			String line = "";
    			while ((line = in.readLine()) != null)
    			{
    				result += "\n";
    				result += line;
    			}
    		} catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    		return result;
    	}



    2.差不多一样的代码,GET和POST,直接用

    package com.fisee.map;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.List;
    import java.util.Map;
    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class HttpRequest {
    	
    	 static ExecutorService fixedThreadPool = Executors.newFixedThreadPool(8);  
    	
        /**
         * 向指定URL发送GET方法的请求
         * 
         * @param url
         *            发送请求的URL
         * @param param
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return URL 所代表远程资源的响应结果
         */
        public static String sendGet(final String url, final String param) {
        	//System.err.println("url==="+url);
        	//System.out.println("MSG==="+param);
        	final StringBuilder sb = new StringBuilder(120);
        	final CountDownLatch latch = new CountDownLatch(1);
        	
        	fixedThreadPool.execute(new Runnable() {	
    			@Override
    			public void run() {
    				//String result = "";
    		        BufferedReader in = null;
    		        try {
    		            String urlNameString = url + "?" + param;
    		            URL realUrl = new URL(urlNameString);
    		            // 打开和URL之间的连接
    		            URLConnection connection = realUrl.openConnection();
    		            // 设置通用的请求属性
    		            connection.setRequestProperty("accept", "application/json");
    		            connection.setRequestProperty("connection", "Keep-Alive");
    		            connection.setRequestProperty("user-agent",
    		                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
    		            connection.setConnectTimeout(4000);  
    		            connection.setReadTimeout(15000);  
    		            // 建立实际的连接
    		            connection.connect();
    		            // 获取所有响应头字段
    		            /*Map<String, List<String>> map = connection.getHeaderFields();
    		            // 遍历所有的响应头字段
    		            for (String key : map.keySet()) {
    		                System.out.println(key + "--->" + map.get(key));
    		            }*/
    		            // 定义 BufferedReader输入流来读取URL的响应
    		            in = new BufferedReader(new InputStreamReader(
    		                    connection.getInputStream()));
    		            String line;
    		            while ((line = in.readLine()) != null) {
    		                //result += line;
    		            	sb.append(line);
    		            }
     
    		        } catch (Exception e) {
    		            System.out.println("com.fisee.map.HttpRequest发送GET请求出现异常!");
    		            //e.printStackTrace();
    		        }
    		        // 使用finally块来关闭输入流
    		        finally {
    		            try {
    		                if (in != null) {
    		                    in.close();
    		                }
    		            } catch (Exception e2) {
    		                e2.printStackTrace();
    		            }
    		            
    		            latch.countDown();
    		        }
    		       // return result;
    				
    			}
    		});
        	
        	try {
    			latch.await();
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
            return sb.toString();
        }
    
        /**
         * 向指定 URL 发送POST方法的请求
         * 
         * @param url
         *            发送请求的 URL
         * @param param
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return 所代表远程资源的响应结果
         */
        public static String sendPost(String url, String param) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
                // 发送请求参数
                out.print(param);
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(
                        new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送 POST 请求出现异常!"+e);
                e.printStackTrace();
            }
            //使用finally块来关闭输出流、输入流
            finally{
                try{
                    if(out!=null){
                        out.close();
                    }
                    if(in!=null){
                        in.close();
                    }
                }
                catch(IOException ex){
                    ex.printStackTrace();
                }
            }
            return result;
        } 
        
        
        public static void main(String[] args) {
         /*   //发送 GET 请求
            String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
            System.out.println(s);
            
            //发送 POST 请求
            String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
            System.out.println(sr);*/
        }
    }
    



    3.另外介绍一个Post工具,Firefox浏览器打开按Ctrl+Alt+P组合键即可打开其自带的Post工具,使用非常方便。


    展开全文
  • JAVA发送POST请求

    万次阅读 2018-09-28 14:36:39
    java向第三方发送post请求,数据格式为json。废话不多说,直接上代码 import com.alibaba.fastjson.JSON; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods....

    java向第三方发送post请求,数据格式为json。废话不多说,直接上代码

    import com.alibaba.fastjson.JSON;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.methods.RequestEntity;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.omg.Messaging.SYNC_WITH_TRANSPORT;
    
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;
    
    public class HttpRequestTest {
    
    
        public static void main(String [] args ) throws Exception {
            httpPost();
        }
    
    
    
    // get请求
    // 实际的请求头设置还不完善,以后再补充
      public static void httpGet() throws IOException {
            HttpClient client = new HttpClient();
            GetMethod getMethod = new GetMethod("http://。。。");
            int i = client.executeMethod(getMethod);
            System.out.println(new String(getMethod.getResponseBody()));
        }
    
        // 向第三方接口发送一个post 请求的参数的看具体的要求,该接口想要的数据是什么类型,如果是json,那就把参数转换为json类型,其他的转换为其它类型,如阿里的接口参数就有的不是json类型
        public static void httpPost() throws Exception {
    
            // json格式的参数,我们可以用map来封装参数,然后将参数转换为json格式
            Map<String ,Object> params = new HashMap<>();
            params.put("articleID",44);
            params.put("columnID",44);
            params.put("desColumnID",44);
            params.put("title","44");
            params.put("subTitle","44");
            params.put("leadTitle","44");
            params.put("abstract","44");
            params.put("articleType",0);
            params.put("source","44");
            params.put("tag","44");
            params.put("optUser","44");
            params.put("author","44");
            params.put("editor","44");
            params.put("liability","44");
            params.put("status",1);
            params.put("content","44");
            params.put("imgUrl","44");
            String paramsJson = JSON.toJSONString(params); // 将参数转换为json字符串
            System.out.println(paramsJson);
    
            //String params="{\"articleID\":44,\"columnID\":44,\"desColumnID\":44,\"title\":\"44\",\"subTitle\":\"44\",\"leadTitle\":\"44\",\"abstract\":\"44\",\"articleType\":0,\"source\":44\",\"tag\":\"44\",\"optUser\":\"44\",\"author\":\"44\",\"editor\":\"44\",\"liability\":\"44\",\"status\":1,\"content\":\"44\",\"imgUrl\":\"http://dev-file.aimingtai.com/webdata/45/images/2018/0829/15355154473121002.jpg\"}";
    
    
            // 服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分
            HttpClient client = new HttpClient(); // 客户端实例化
            PostMethod postMethod = new PostMethod("http://。。。。"); // 请求方法post,可以将请求路径传入构造参数中
            postMethod.addRequestHeader("Content-type", "application/json; charset=utf-8");
    
            byte[] requestBytes = paramsJson.getBytes("utf-8"); // 将参数转为二进制流
            InputStream inputStream = new ByteArrayInputStream(requestBytes, 0,
                    requestBytes.length);
            RequestEntity requestEntity = new InputStreamRequestEntity(inputStream,
                    requestBytes.length, "application/json; charset=utf-8"); // 请求体
            postMethod.setRequestEntity(requestEntity);   // 将参数放入请求体
    
            int i = client.executeMethod(postMethod);  // 执行方法
            System.out.println("请求状态"+i); 
            // 这里因该有判断的,根据请求状态判断请求是否成功,然后根据第三方接口返回的数据格式,解析出我们需要的数据
            
            byte[] responseBody = postMethod.getResponseBody(); // 得到相应数据
            String s = new String(responseBody);
            System.out.println(s);
    
        }
    
    
    
    }
    
    

    本篇博客会持续更新,用来记录自己的学习

    展开全文
  • java发送post请求

    2021-03-17 15:20:58
    public static String post(String url, Map<String, String> reqParam) throws ClientProtocolException, IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); try { // 创建...
  • Java发送post请求

    2017-09-28 17:18:00
    1 package com.ddtech.app.util; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import j...
  • import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;/*** 发送URL的post请求* User: HYY* Date: ...
  • Java发送post请求的实例代码分享package com.ddtech.app.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;...
  • Java 发送POST请求 中文乱码 问题:在Java代码中发送Http请求后,接收端出现中文乱码都是??? 错误的做法:对发送的数据(String类型)做编码处理 jsonStr.getBytes("UTF-8"); 正确的做法:对Http发送数据的Entity...
  • 通过java发送post请求参数为json格式

    千次阅读 2019-04-10 13:13:39
    通过java发送post请求参数为json格式 java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求。我使用的是第二种方法,下面是具体代码。 import ...
  • /** * 发送post请求 * * @param url 请求地址 * @param object 请求参数对象 * @throws IOException */ public static String doPost(String url, Object object) throws IOException { CloseableHttpClient ...
  • java发送post请求上传文件和json数据 因为第三方的上传服务post参数使用了两个@requestpart参数。 但是feign不可以使用两个@requestpart参数。会报错:java.lang.IllegalStateException: Method has too many Body ...
  • java发送GET/POST请求工具类import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;...
  • 1 packagecom.ddtech.app....23 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStreamReader;6 importjava.io.PrintWriter;7 importjava.net.URL;8 importjava.net.URLConnecti...
  • //访问准备URL url = new URL...//post参数Map params = new LinkedHashMap<>();params.put("geomInfo", "");params.put("f", "json");//开始访问StringBuilder postData = new StringBuilder();for (Map.Entr...
  • 项目中遇到传json数据的接口,总结一下...json相关jar包下载请求相关jar包下载import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import net.sf.json.JSONObject;import...
  • 项目中遇到传json数据的接口,总结一下...json相关jar包下载请求相关jar包下载import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import net.sf.json.JSONObject;import...
  • SoapUI作为一个开源的工具,其具备强大的功能、易用的界面,吸引了很多用户。SoapUI通过简单的操作可以实现负载的...那我们接下来就来试试使用SoapUI发送POST请求, 由于GET请求更为简单, 因此此处就省略300字了.1....
  • 一个web service 提供了post请求方式,用户发送一个xml请求文档比如:namezhangsaninfo服务端会返回zhangsan的信息。上面的xml文档在浏览器中通过post表单方式正常执行。但是在java中就不行了java种代码如下:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,968
精华内容 1,587
关键字:

java发送post请求

java 订阅