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

    2019-05-26 11:22:45
    使用Java发送Http请求 public static JSON sengGet(Map map) { try { String date = MakeParameters.formatIso8601Date(); String url = makeMap(map); CloseableHttpCli...

    使用Java发送Http请求 

     public static JSON sengGet(Map map) {
            try {
                String date = MakeParameters.formatIso8601Date();
                String url = makeMap(map);
                CloseableHttpClient httpClient = HttpClients.createDefault();
                //创建get对象,设置url
                HttpGet get = new HttpGet(url);
                //添加请求头信息
                get.setHeader("Content-Type", "application/json;charset=UTF-8");
                get.setHeader("Accept-Encoding", "*");
                get.setHeader("Date", date);
                //执行get请求
                CloseableHttpResponse response = httpClient.execute(get);
                //获取服务器响应内容
                String str = EntityUtils.toString(response.getEntity());
                response.close();
                httpClient.close();
                System.out.println(str);
                JSONObject jsonObject = JSONObject.parseObject(str);
                return jsonObject;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
    
        }

     

    展开全文
  • 1、通过JDK网络类Java.net.URLConnection (1)api (2)使用: GET: 1、创建远程连接 URL url = new URL(httpUrl); connection = (HttpURLConnection) url.openConnection(); 2、设置连接方式...

    1、通过JDK网络类Java.net.URLConnection

    	(1)api
    	(2)使用:
         	GET:
    			1、创建远程连接			
    
    				URL url = new URL(httpUrl);
                	connection = (HttpURLConnection) url.openConnection();
    
    			2、设置连接方式(get、post、put。。。)和通用属性
    
    				    // 设置通用的请求属性
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection.setRequestProperty("Content-Type","application/json;charset=utf-8");
                connection.setRequestProperty("user-agent",
                	"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
    			connection.setRequestMethod("GET"); //不设置也没问题
    
    			3、设置连接超时时间
    
    				 connection.setReadTimeout(15000);
               		
    
    			4、设置响应读取时间
    			5、发起请求
    
               		 connection.connect()
    
    			6、获取请求数据
    
    			if (connection.getResponseCode() == 200) {
                    //获取返回的数据
                    is = connection.getInputStream();
                    if (null != is) {
                        br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                        String temp = null;
                        while (null != (temp = br.readLine())) {
                            result.append(temp);
                        }
                    }
                }
    
    			7、关闭连接
    
    				 br.close();
    
    			POST:
    			1、创建远程连接
    			2、设置连接方式(get、post、put。。。)
    			3、设置连接超时时间
    			4、设置响应读取时间
    			5、当向远程服务器传送数据/写数据时,需要设置为true(setDoOutput)
    			6、当前向远程服务读取数据时,设置为true,该参数可有可无(setDoInput)
    			7、设置传入参数的格式:(setRequestProperty)
    			8、设置鉴权信息:Authorization:(setRequestProperty)
    			9、设置参数
    
    				 // 获取URLConnection对象对应的输出流
    	            out = new PrintWriter(conn.getOutputStream());
    	            // 发送请求参数
    	            out.print(param);
    	            // flush输出流的缓冲
    	            out.flush();
    
    			10、发起请求
    			11、获取请求数据
    			12、关闭连接
    

    2、common封装好的HttpClient

    	(1)创建httpClient对象。
    
     HttpClient httpClient = new HttpClient();
    
    	(2)创建以什么方式发送对象
    
     PostMethod postMethod = new PostMethod(url);
     GetMethod getMethod = new GetMethod(url);
    
        (3)设置超时时间
    
    //设置Http连接超时为5秒
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
    
        (4)设置响应头
    
     //设置get请求超时为5秒
            getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
            //设置请求重试处理,用的是默认的重试处理:请求三次
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
            
            
             //设置json格式传送
            postMethod.addRequestHeader("Content-Type", "application/json;charset=GBK");
            //必须设置下面这个Header
            postMethod.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");
          
    
    
    
        (6)设置参数
    
      //post添加请求参数
            postMethod.addParameter("commentId", json.getString("commentId"));
    
        (6)请求
    
    			int code = httpClient.executeMethod(postMethod);
    			//  int statusCode = httpClient.executeMethod(getMethod);
    
        (7)获取响应
    
    
                //get
                byte[] responseBody = getMethod.getResponseBody();
                response = new String(responseBody, charset);
                System.out.println("-----------response:" + response)
    			//post
    			int code = httpClient.executeMethod(postMethod);
                if (code == 200){
                    res = postMethod.getResponseBodyAsString();
                    System.out.println(res);
                }
    
    
    

    3、通过Apache封装好的CloseableHttpClient

    	(1)创建HttpClient对象。
    
      CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    
        (2)创建以什么方式发送的对象。
    
    	HttpGet httpGet = new HttpGet(url);// HttpPost httpPost = new HttpPost(url);
    
        (3)设置header
    
    		httpPost.addHeader("api_gateway_auth_token", tokenString);
            httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0;
             Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
              Chrome/58.0.3029.81 Safari/537.36");
              //get同样
    
    
        (4)设置参数
        		(一)get
        			//没有,直接在连接上
        		(二)post
    
     			StringEntity se = new StringEntity(json.toString());
                se.setContentEncoding("UTF-8");
                //发送json数据需要设置contentType
                se.setContentType("application/x-www-form-urlencoded");
                //设置请求参数
                httpPost.setEntity(se);
    
    
        (5)执行。
    
    		HttpResponse response = httpClient.execute(httpGet)
    		//HttpResponse response = httpClient.execute(httpPost);
    
        (6)获取响应。
    
    			if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                    //返回json格式
                    String res = EntityUtils.toString(response.getEntity());
                    return res;
                }
    
    展开全文
  • 一、使用原生jdk带的 HttpURLConnection 访问参数通过io流,麻烦的不行,写了一大堆,参数传输稀烂。(折腾半天有人说用RestTemplate啊,真可谓书到用时方恨少) 二、Spring RestTemplate ...1、get请求 ...

    一、使用原生jdk带的
    HttpURLConnection
    访问参数通过io流,麻烦的不行,写了一大堆,参数传输稀烂。(折腾半天有人说用RestTemplate啊,真可谓书到用时方恨少)
    二、Spring RestTemplate
    需要的包

     <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.3.13.RELEASE</version>
            </dependency>
    

    废话不多说,测试时,客户端

    private static RestTemplate restTemplate=new RestTemplate();
    

    1、get请求
    服务端代码

     @ResponseBody
     @GetMapping("/hello")
        String hehe1(String name,String age){
            System.out.println("dasdas"+name+age);
            return "我是get请求";
        }
    

    客户端:

     //get访问
        public static String getHello() {
            ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://localhost:8080/hello?name={1}&age={2}", String.class,"zhangsan","23");
            String body = responseEntity.getBody();
            HttpStatus statusCode = responseEntity.getStatusCode();
            int statusCodeValue = responseEntity.getStatusCodeValue();
            HttpHeaders headers = responseEntity.getHeaders();
            StringBuffer result = new StringBuffer();
    
            System.out.println(responseEntity.getBody());
            System.out.println(responseEntity.getStatusCode());
            System.out.println(responseEntity.getStatusCodeValue());
            System.out.println(responseEntity.getHeaders());
    
            return "";
        }
    

    运行结果:
    在这里插入图片描述
    2、post
    post传递参数直接用map是报错的,原因后面补充。
    所以我这里通过用json传输

    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.60</version>
            </dependency>
    

    服务端代码:

    @ResponseBody
        @PostMapping("/post")
        String hehe2(@RequestBody String nameage){
    
            JSONObject object = JSONObject.parseObject(nameage);
            System.out.println(object.get("name"));
    
            return (String)object.get("name");
        }
    

    客户端代码:

    public static void book3() {
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
            JSONObject object = new JSONObject();
            object.put("name","张三");
            object.put("age",5);
            String nameage=object.toJSONString();
            System.out.println(nameage) ;
            ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8080/post", nameage,String.class);
            System.out.println(responseEntity.getBody()) ;
        }
    

    运行结果:
    在这里插入图片描述
    3、上传文件
    服务端:

    @ResponseBody
        @PostMapping("/filetest")
        String hehe3(@RequestParam(value = "file", required = false) MultipartFile file,@RequestParam(value = "pass", required = false) String pass){
    
            File fileserver=new File("H:/abc.png");
            try {
                file.transferTo(fileserver);
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println(pass);
    
            return "成功";
        }
    

    客户端:

    public static void book4(){
            // 上传文件
            FileSystemResource fileSystemResource = new FileSystemResource("H:/123.png");
            if (!fileSystemResource.exists()) {//文件不存在处理
                System.out.println("文件不存在");
            }
            MediaType type = MediaType.parseMediaType("multipart/form-data");
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(type);
            //headers.set("Cookie", cookies);//session用于验证身份
            MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>();
            form.add("file", fileSystemResource);
            form.add("pass", "123");//用于验证身份
            HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
            ResponseEntity<String>responseEntity = restTemplate.postForEntity("http://localhost:8080/filetest", files, String.class);//发送
            //此处要添加错误处理
            String result = responseEntity.getBody().toString();
    
        }
    

    结果:
    在这里插入图片描述
    待续
    参考:https://blog.csdn.net/u012702547/article/details/77917939

    展开全文
  • java发送http请求

    2018-08-30 11:57:12
    记录一下java发送http请求的工具类。

    记录一下java发送http请求的工具类。

    展开全文
  • 通过Java发送http请求

    2021-01-21 17:12:33
     下面为大家提供一个Java发送http请求的工具类 HttpRequest.java package org.javahttp.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java....
  • Java发送HTTPS请求

    万次阅读 热门讨论 2019-03-19 15:56:03
    上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的。我也是由于对接了其他企业后总结了一套发送 https的工具。大家网上找方法很多的,但是可不是你粘过来就能用啊,我也是踩过坑的,所以我这个工具...
  • java发送https请求的例子
  • java发送http请求报文json
  • JAVA发送HttpClient请求及接收请求结果过程
  • java 发送HTTP请求工具

    2017-08-02 16:15:17
    java 发送HTTP请求工具
  • 发送Get请求,但是请求参数要放在请求body内,所以经过多方查证后整理出来以下代码。 2.POM依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>...
  • java发送https请求,解决了数组证书的问题,所依赖的jar都有
  • Java发送HTTP 请求

    千次阅读 2019-03-19 15:29:25
    因为是http请求,所有发送post 和get 请求的demo都有在下方贴出,包括怎么测试,大家可直接 copy到自己的项目中使用。 正文 使用须知 为了避免大家引错包我把依赖和涉及到包路径给大家 import java.net....
  • java 发送网络请求

    千次阅读 2017-12-22 16:19:26
    近日接触了微信号开发,调接口时要发送网络请求下面是网络请求代码:import net.sf.json.JSONObject;import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java...
  • Java 发送http请求

    千次阅读 2018-07-04 20:33:48
    发送GET方法的请求 /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,格式:name1=value1&amp;amp;name2=value2 * @return String 响应结果 ...
  • 这是一个java发送get、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发送Https请求

    千次阅读 2018-12-13 16:09:14
    推荐一篇帖子,讲解很清晰 关于JAVA发送Https请求(HttpsURLConnection和HttpURLConnection)
  • Java发送Post请求

    千次阅读 2015-10-20 11:41:28
    1.Java发送Post请求方法,指定Url发送String类型数据,直接从代码里抠出来的,不必要的代码可自行注掉。 /** * post请求 * * @param url * post的url地址 * @param body * 要post的数据 * @return ...
  • 本文通过实例代码给大家介绍了Java 发送http请求上传文件功能,需要的朋友参考下吧
  • Java发送http请求–get请求 import java.io.PrintWriter; import java.net.*; public class JavaHTTPHandle { public static void main (String[] args){ JavaHTTPHandle jhh = new JavaHTTPHandle(); jhh....
  • java发送请求体的delete请求

    千次阅读 2019-07-08 15:00:44
    java发送请求体的delete请求 有时候,我们需要在A系统中使用delete请求调用B系统中的方法进行批量删除数据,所以需要向请求体中写入参数,但是org.apache.commons.httpclient.methods.DeleteMethod这个类中没有...
  • Java发送GET请求和POST请求小工具 写了一个比较通用的请求工具,请求参数和请求头也容易添加并发送请求,也可以不添加请求参数。请求有些网页会有中文有乱码情况,所以添加了boolean transcoding参数,判断是否转码...
  • JAVA 发送https请求

    2018-06-06 17:25:23
    package ...import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.U...
  • 完整的java发送http包工程,可发送get及post请求
  • Java 发送POST请求 中文乱码 问题:在Java代码中发送Http请求后,接收端出现中文乱码都是??? 错误的做法:对发送的数据(String类型)做编码处理 jsonStr.getBytes("UTF-8"); 正确的做法:对Http发送数据的Entity...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,743
精华内容 6,297
关键字:

java发送请求

java 订阅