精华内容
下载资源
问答
  • http的get请求怎么写
    千次阅读
    2022-03-11 16:27:55

    使用场景: 需要请求其他服务的时候 需要使用http请求访问接口
    跟前端api的js相似

    1. 无参数写法
     // 接口路径
    String url = " http://203.3.111.222: 8090/demo/getList ";
    URL restURL = new URL( url );
    HttpURLConnection coon = ( HttpURLConnection ) restURL.openConnection();             
    coon.setRequestMethod( "GET" );  // get请求
    coon.setDoOutput( true );
    coon.setAllowUserInteraction( false );
    BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( new InputStreamReader( coon.getInputStream )  )  );
    String line, resultStr  =  "";
    while (null  !=  ( line  =  bufferedReader.readLine) ){
              resultStr + = line;
        }
    //  获取接口数据  具体看接口返回的数据结构 以下只是获取数据举例
    JSONObject jsonObject = JSONObject.parseObject(resultStr);
    String str = jsonObject .getString("data");
    //  使用自己封装的实体类接收
    List<MyEntity> myList = JsonArray.parseArray(str, MyEntity.class)
    
    2. 有参接口(url拼接参数即可  其他代码一致)
    
    

    String url = "http://203.3.111.222: 8090/demo/getList?param = " + param; // param是参数

    
    
    更多相关内容
  • java调用HTTP接口(Get请求和Post请求
  • 50行代码http发送Post/Get请求,直接在linux gcc编译即可使用,或在win下任意c/c++编译器都可
  • HTTPGET请求和POST请求

    千次阅读 2021-03-14 14:42:01
    一、HTTP请求        HTTP协议的报文都是ASCLL码,建立在TCP传输协议之上。HTTP请求主要有三个部分:请求行、请求头和请求体。 1、请求行      &...

    一、HTTP的请求

           HTTP协议的报文都是ASCLL码,建立在TCP传输协议之上。HTTP的请求主要有三个部分:请求行、请求头和请求体

    1、请求行

           即求情的数据格式中的第一行,由三个内容组成:请求方式、URL、HTTP协议的版本。
           说明:
                  1.请求方式:GET or POST
                  2.URL:请求的目标网址,或者IP地址
                  3.HTTP协议版本:发送请求的HTTP协议的版本号如:HTTP/1.1

    2、请求头

           即向服务器发送一些数据和数据标识等等,有很多信息,每个信息都有 "信息名:+信息值"的方式组成,而且每个信息之间必须由空行隔开,代表信息结束。

    User-Agent: firefox//表示发送请求的浏览器(请求代理端)是firefox
    Host: shop.100.com//表示请求的主机域名(基于域名的虚拟主机就是靠这个头判断的)
    Cookie:name=itcast//浏览器携带的cookie数据。
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive
    

    3、请求体

           是代理端向服务器发送的请求数据,请求体才是需要给服务器发送的数据,比如要给服务器发送一个数据 1,那么这个数据1 就是请求体。

    二、GET请求

           GET请求的数据会以 URL+参数 的方式进行传输,并且和URL一起传输,这也是GET请求的数据有限的原因之一,且可以缓存。GET请求的数据一般不大于2k~4K这个数值取决于浏览器。

    1、GET请求的判断方法

           (1) 请求行会体现请求方式,GET请求的请求行一般就是以 “GET” 开头:如 GET /books/?sex=man&name=Professional HTTP/1.1 ;
           (2) GET请求的服务器响应,当请求成功后,服务器直接返回:200,再次之前没有其他回应(因为GET请求发送的是一个数据包)

    2、GET请求的特点

           (1) URL 可见,
           (2) 数据可以缓存
           (3) 通过拼接URL进行参数传递
           (4) 请求后的页面后退不会产生影响
           (5) 没有请求体

    三、POST请求

            相对于GET请求,POST请求会更加复杂,同时也会比GET请求更加安全。传输数据的时候,URL不会在请求行中出现,而数据放在请求体部分进行传出。因为数据有了独立的请求部分来存储,所以数据的大小是无限的,可以由php.ini 文件来设定。

    1、POST请求的判断方法

           (1) 请求行会体现请求方式,POST请求的请求行一般就是以 “POST” 开头,且后面只能看到HTTP协议类型:如 POST / HTTP/1.1;
           (2) POST请求的服务器响应,当请求成功后,服务器先返回:100,然后再返回200;原因是POST请求会先发送hander,服务器返回100,然后再发送data,服务器返回200。

    2、POST请求的特点

           (1) URL 不可见,安全性高
           (2) 数据不可以缓存
           (3) 数据放在请求体中发送
           (4) 请求后的页面后退,会重新发起请求
           (5) 数据大小可以无限大

    四、GET请求和POST请求的区别

           两者之前的区别体现在各自的特点当中

    师承:上官可编程(同抖音号)

    展开全文
  • SpringBoot HTTP接口GET请求

    千次阅读 2022-01-05 10:54:00
    HTTP接口get请求,注解使用: 1 @RequestMapping:来映射请求,也就是通过它来指定控制器可以处理...4 @RequestParam:接收的参数是来自HTTP请求体或请求url的QueryString中。 @RequestParam有三个配置参数: re.

    HTTP接口get请求,注解使用:

    1 @RequestMapping:来映射请求,也就是通过它来指定控制器可以处理哪些URL请求
    2 @PathVariable: 将 URL 中的占位符绑定到控制器的处理方法的参数中,占位符使用{}括起来
    3 @GetMapping:来映射GET请求,也就是通过它来指定控制器可以处理哪些URL请求
    4 @RequestParam:接收的参数是来自HTTP请求体或请求url的QueryString中。

     @RequestParam有三个配置参数:

    • required 表示是否必须,默认为 true,必须。
    • defaultValue 可设置请求参数的默认值。
    • value 为接收url的参数名(相当于key值)。
    5 @RequestBody:接收的参数是来自requestBody中,即请求体。
      一般用于处理非 Content-Type: application/x-www-form-urlencoded
      编码格式的数据,比如:application/json、application/xml等类型的数据。
    6 @RequestHeader:用于映射请求头数据到Controller方法的对应参数。

    1、 注解@RequestMapping和PathVariable的使用

     

     

    2、 注解@GetMapping和RequestParam的使用

     

     3、注解@GetMapping和RequestBody的使用

     

     

     4、注解@GetMapping和RequestHeader的使用 

    5、注解@GetMapping与接口HttpServletRequest使用 

     

     

    展开全文
  • 使用java实现HTTPGET请求

    万次阅读 2020-05-12 11:33:03
    在前几节我们详细讲解了http协议的相关信息,基于“知行合一”的原则,只有通过具体动手实践才有可能检验知识点被我们真正掌握,本节我们就使用代码实现httpget请求。 首先需要一个http服务器,基于简单原则,我...

    在前几节我们详细讲解了http协议的相关信息,基于“知行合一”的原则,只有通过具体动手实践才有可能检验知识点被我们真正掌握,本节我们就使用代码实现http的get请求。

    首先需要一个http服务器,基于简单原则,我使用了在手机上的福昕pdf阅读器iPhone版,安卓版效用一样,它自身附带了小型http服务器,用于将文档从电脑传给手机,打开该App,在菜单中选择Wi-Fi,点击“允许文件传输”即可启动http服务器,然后在浏览器中输入“http://192.168.2.127:8888",其中192.168.2.127是我手机的ip,也对应http服务器的ip,8888是服务器接收请求的端口,输入URL点击后,浏览器会接收到请求回应并展现如下:

    屏幕快照 2020-05-12 上午10.10.34.png

    使用它的好处在于足够简单,并且它有文件上传功能,于是后面我们还可以用来实现POST请求,接下来我们使用代码模拟客户端向它发送GET请求,首先实现的是http数据包组装和解析功能:

    package Application;
    
    import java.util.*;
    public class HTTPEncoder {
        public enum HTTP_METHOD {
            HTTP_GET,
            HTTP_HEADER,
            HTTP_POST,
            HTTP_OPTIONS
        };
        
        
        private String  http_method = "";
        private String  http_header = "";
        private Map<String, String>  http_header_map = new HashMap<String, String>();
        
        public  void set_method(HTTP_METHOD method, String url) {//构造http 请求方法字符串
        	switch (method) {
        		case HTTP_GET:
        			http_method = "GET ";
        			break;
        		case HTTP_HEADER:
        			http_method = "HEADER ";
        			break;
        		case HTTP_POST:
        			http_method = "POST ";
        			break;
        		case HTTP_OPTIONS:
        			http_method = "OPTIONS ";
        			break;
        }
        
        http_method += url;
        http_method += " HTTP/1.1\r\n";  //必须以/r/n结尾
        }
        public  void  set_header(String header_name, String header_value) {//将头部信息中的字段和对应值对应起来
        	http_header_map.put(header_name, header_value);
        }
        
        public String get_http_content() {//把起始行和头部字段信息组装成http请求数据包文本
        	String  http_content = "";
        	http_content += http_method;
        	for (Map.Entry<String, String> entry : http_header_map.entrySet()) {
        		String header_name = entry.getKey();
        		String header_value = entry.getValue();
        		http_header += header_name;
        		http_header += ": ";
        		http_header += header_value;
        		http_header += "\r\n";
        	}
        	http_content += http_header;
        	http_content += "\r\n";
        	return  http_content;
        }
        
        public  int  get_return_code(String http_return) {
        	String http_code_begin_str = "HTTP/1.1 "; //获取http回复包的返回码,200表示请求被正常处理
        	int http_code_begin = http_return.indexOf(http_code_begin_str); 
        	if  ( http_code_begin!= 0) {
        		return  -1;
        	}
        	http_code_begin += http_code_begin_str.length();
        	String http_code_end_str = " ";
        	int http_code_end = http_return.indexOf(http_code_end_str, http_code_begin);
        	if  (http_code_end == -1) {
        		return -1;
        	}
        	String  http_code = http_return.substring(http_code_begin, http_code_end);
        	int code = Integer.parseInt(http_code);  //通过Content-Length字段获取服务器返回数据长度
        	
        	return code;
        }
        
      public int  get_content_length(String http_return) {
    	  String  http_content_length = "Content-Length: ";
    	  String  http_line_end = "\r\n";
    	  int length_begin = http_return.indexOf(http_content_length);
    	  if  (length_begin == -1) {
    		  return  0;
    	  }
    	  
    	  length_begin += http_content_length.length();
    	  int  length_end = http_return.indexOf(http_line_end, length_begin);
    	  String  content_length_str = http_return.substring(length_begin, length_end);
    	  int content_length = Integer.parseInt(content_length_str);
    	  return  content_length;
      }
    }
    

    上面给定的类用于负责组装http请求的方法行,同时将http请求的头部字段和对应信息放入到一个Map中以便对应起来,然后通过get_http_content方法将请求行以及头部字段信息组合成http请求数据包的内容。该类还实现了简单的http返回数据解析,它解读服务器返回的http数据,确保返回码是200,也就是服务器正常处理了我们发出的http请求,同时通过Content-Length字段获取服务器返回的数据长度。

    接着我们使用该类发送请求数据包:

    package Application;
    
    import java.net.InetAddress;
    import utils.ITCPHandler;
    
    public class HTTPClient implements ITCPHandler{
    	private  TCPThreeHandShakes  tcp_socket = null;  
    	private HTTPEncoder httpEncoder = new HTTPEncoder();
        private String user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 1-14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/547.36";
        private String accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3q=0.9";
        private int total_length = 0;
        private String  http_return_content = "";
        private boolean  receive_first_time = true;
        private int  receive_content_length = 0;
        private static int HTTP_OK = 200;
        private void send_content() throws Exception {//设置http请求数据的头部信息
        	 httpEncoder.set_method(HTTPEncoder.HTTP_METHOD.HTTP_GET, "/");
    		 httpEncoder.set_header("Host","192.168.2.127:8888");
    		 httpEncoder.set_header("Connection", "keep-alive");
    		 httpEncoder.set_header("Upgrade-Insecure-Requests", "1");
    		 httpEncoder.set_header("User-Agent", user_agent);
    		 httpEncoder.set_header("Accept", accept);
    		 httpEncoder.set_header("Purpose", "Prefetch");
    		 httpEncoder.set_header("Accept-Encoding", "gzip,deflate");
    		 httpEncoder.set_header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
    		 String http_content = httpEncoder.get_http_content();
    		 System.out.println(http_content);
    		 byte[] send_content = http_content.getBytes();
    		 tcp_socket.tcp_send(send_content);
        }
    	@Override
    	public void connect_notify(boolean connect_res) {
    		if (connect_res == true) {
    			 System.out.println("connect http server ok!");
    			 try {
    					send_content();
    				} catch (Exception e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    		 } 
    		else {
    			System.out.println("connect http server fail!");
    		}	
    	}
    
    	@Override
    	public void send_notify(boolean send_res, byte[] packet_send) {
    		if (send_res) {
    			System.out.println("send request to http server!");
    		}
    		
    	}
        
    	private void close_connection() {
    		try {
    			tcp_socket.tcp_close();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	@Override
    	public void recv_notify(byte[] packet_recv) {
    		String content = new String(packet_recv);
    		if  (receive_first_time) {
    			/*
    			  如果是第一次接收服务器返回的数据,那么从http返回的头部获取请求处理结果码和返回数据长度等信息,
    			  要不然就是获取服务器返回的数据信息
    			 */
    			receive_first_time = false;
    			int code = httpEncoder.get_return_code(content);
    			if  (code != HTTP_OK) {
    				System.out.println("http return error: " + code);
    				close_connection();
    				return;
    			} else {
    				System.out.println("Http return 200 OK!");
    			}
    			this.total_length = httpEncoder.get_content_length(content);
    			if  (this.total_length <= 0) {
    				close_connection();
    				return;
    			}
    			System.out.println("Content Length: " + total_length);
    		}
    		else {
    			//每次接收数据后检查接收数据长度是否达到指定长度,达到表明服务器发送数据完毕,可以关闭连接
    			http_return_content += content;
    			receive_content_length += packet_recv.length;
    			if  (receive_content_length >= total_length) {
    				System.out.println("receive content is: " + http_return_content);
    				close_connection();
    			}
    		}
    	}
    
    	@Override
    	public void connect_close_notify(boolean close_res) {
    		if (close_res) {
    			System.out.println("Close connection with http server!");
    		}
    	}
    	
    	public void run() {
    		 try {
    			InetAddress ip = InetAddress.getByName("192.168.2.127"); //连接ftp服务器
    			short port = 8888;
    			tcp_socket = new TCPThreeHandShakes(ip.getAddress(), port, this);
    			tcp_socket.tcp_connect();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }
    

    该类使用HttpEncoder类构造http请求数据包后,调用前面实现的tcp协议将数据包封装起来发送给服务器,一旦收到服务器的返回后解析返回数据内容,获取http返回码,确认返回码为200也就是服务器正常处理发过去的请求,然后获得服务器返回的数据长度。

    接下来就在函数recv_notify中依次接收服务器发送过来的数据信息,每次接收信息后计算总共接收到的数据长度是否与服务器返回的Content-Length字段中指定的长度一致,如果一致说明信息全部接收完毕,那么程序将接收到的信息打印出来并关闭tcp连接,上面代码运行后在wireshark中的抓包如下:

    屏幕快照 2020-05-12 上午10.23.08.png

    从截图中看到,GET / HTTP/1.1就是程序构造的请求包,HTTP/1.1 200 OK就是服务器返回的应答,从回复看服务器接受了程序发出的请求并正常处理,同时将相关信息返回给程序,程序在接收完所有信息后将接收到的数据打印出来,结果如下:

    屏幕快照 2020-05-12 上午10.25.59.png

    从截图看到,程序正确接收到服务器返回的html页面信息,由此可见我们代码的实现逻辑基本正确。

    更详细的讲解和代码调试演示过程,请点击链接

    更多技术信息,包括操作系统,编译器,面试算法,机器学习,人工智能,请关照我的公众号:
    这里写图片描述

    展开全文
  • vc-httpclient:基于Microsoft visual c++ 6.0。实现http客户端发送GET、POST请求
  • 场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式,入参是一个json字符串在body中传递)当我看到这个接口的时候,感觉好奇怪(MMP,干嘛不用POST请求。Getget,请求还放Body中,心里有些不爽)尽管...
  • HTTP GET请求使用了请求体遇到的坑

    千次阅读 2021-01-28 16:45:18
    响应内容: 以及此时后端显示的错误: 结论就是: HTTP协议本身支持GET请求携带请求体 JAVA后端支持GET请求携带请求体 WEB浏览器不支持GET请求携带请求体 解决方案一:就是将GET请求改成POST请求 解决方案二:GET...
  • 常用的httpget请求方法

    千次阅读 2021-07-07 09:43:10
    一. String str = HttpClientUtil.doGet(path, null, "utf-8"); Map mapUser = JSON.parseObject(str); public class HttpClientUtil { public static String doGet(String path, Map<... HttpCli
  • HttpGet 请求(带参数)

    千次阅读 2021-03-22 11:22:39
    // 创建请求对象 HttpGet httpGet = new HttpGet(sb.toString()); // 设置参数 HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, 5000); HttpConnectionParams....
  • Http get方式发送请求

    千次阅读 2019-11-26 21:07:37
    首先介绍一种简单的方式,因为get请求传递参数是可以直接拼凑在Url后的,这个是最基本的东西,即使有各种的工具类,本质还是这个,我们先把最本质的东西贴出来,接下来再介绍一些工具类。 @Test public void test01...
  • 利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpgethttppost请求
  • HTTP get请求发送JSON格式数据

    千次阅读 2022-03-10 20:31:44
    get请求一般不建议发送JSON格式的数据,单总有一些奇葩系统要求 分享下本人对接途牛 传递get请求 json数据的方法 第一步:平常的get请求不要想了 直接继承 import org.apache....
  • VC++ HTTP Get Post请求

    热门讨论 2013-07-18 00:23:33
    VC++ HTTP Get Post请求,自己编译就知道了,跟给力。。
  • http get 请求可以有请求体吗

    千次阅读 2021-11-18 22:02:56
    http get 请求可以有请求体吗 可以 rfc 规范并没有规定 get 请求不可以有请求体 不过习惯上, get 请求都认为是对请求 uri 的数据传输, 并且有的网络库不支持 get 传输请求体, 例如 okhttp
  • C++实现http发起GET/POST请求

    千次阅读 2022-05-25 17:38:35
    目录HTTP请求报文解析HTTP响应报文解析C++实现http发起GET请求 HTTP请求报文解析 http请求报文由3部分组成:请求行、请求头、请求体。 ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、...
  • java http 发送 put delete post get请求

    热门讨论 2015-05-27 14:31:38
    是一个Java 发送http put、delete、 post、 get 请求的工具类。可用在与restful service 进行通讯的代码中。
  • 利用java实现发送httpget请求的方法有哪些发布时间:2020-11-20 16:22:25来源:亿速云阅读:82作者:Leah这篇文章将为大家详细讲解有关利用java实现发送httpget请求的方法有哪些,文章内容质量较高,因此小编...
  • Java实现HTTP Get请求

    万次阅读 2018-11-14 15:28:02
    import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse...import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; ...
  • 我是如何实现HttpGet请求传body参数的!

    万次阅读 多人点赞 2020-11-19 14:19:49
    场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式,入参是一个json字符串在body中传递) 当我看到这个接口的时候,感觉好奇怪(MMP,干嘛不用POST请求。Getget,请求还放Body中,心里有些不爽)...
  • QT进行http请求(post/get

    千次阅读 2022-05-27 10:03:25
    在刚接触QT时第一个任务就是进行http请求,现在才开始记录,可能会有遗漏的点。 一、post请求 在.pro文件中 QT += network 在.h文件中添加对应的头文件 #include <QWidget> #include <QObject> ...
  • 发送Get请求,但是请求参数要放在请求body内,所以经过多方查证后整理出来以下代码。 2.POM依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>...
  • java发送http get请求的两种方法(总结)

    千次阅读 2021-03-22 16:08:38
    长话短说,废话不说一、第一种方式,通过HttpClient方式,代码如下:public static String httpGet(String url, String charset)throws HttpException, www.cppcns.comIOException {String json = null;HttpGet ...
  • C# 实现HttpGet请求

    千次阅读 2021-01-05 14:47:39
    /// HTTP Get请求 /// </summary> /// <param name="url">API地址</param> /// <param name="encode">编码</param> public static String GetData(String url, En
  • Http请求头和响应头(Get和Post)

    千次阅读 2021-08-25 09:23:14
    (post)三、HTTP响应消息(一)状态行(1)HTTP状态码(二)HTTP响应头 content-Type(1)定义和用法application/x-www-form-urlencoded四、关于HTTP请求GET和POST的区别1.数据位置2.传输数据的大小3.安全性 参考:...
  • 一,HTTP请求方法 常用请求方法 其他请求方法 二,HTTP请求作用 三,HTTP请求整体格式 常见的请求体数据类型: 四,使用Fidder抓包工具进行验证 验证GET请求 验证POST请求 五,GET和POST的区别 一,HTTP...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,271,629
精华内容 1,308,651
关键字:

http的get请求怎么写