java Http消息传递之POST和GET两种方法

简介: /** * 通过Get方法来向服务器传值和获取信息, * 这里举例假设的前提是,链接上服务器,服务器直接发送数据给本地 * * 大体的思路: * 1、首先通过URL地址来获得链接的借口 * 通过接口,来设置链接超时的时间,请求方式,是否可以输入输出数据 * 得到读取服务器内容的...

/**
* 通过Get方法来向服务器传值和获取信息,
* 这里举例假设的前提是,链接上服务器,服务器直接发送数据给本地
*
* 大体的思路:
* 1、首先通过URL地址来获得链接的借口
* 通过接口,来设置链接超时的时间,请求方式,是否可以输入输出数据
* 得到读取服务器内容的读取流
*
* 2、为存储 从服务器读取到的数据做准备
* 将读取到的数据写入文件或直接得到字符串
* 关闭并刷新读写流
*
*
*/

 

 1 public static void getMsgByGet(String path){
 2         try {
 3             /*为读取做准备*/
 4             
 5             //通过URL路径来创建URL对象
 6             URL url=new URL(path);
 7             //建立连接对象,并设置相应属性
 8             HttpURLConnection conn=(HttpURLConnection) url.openConnection();
 9             conn.setConnectTimeout(5000);
10             conn.setRequestMethod("GET");
11             conn.setDoInput(true);
12             //若连接成功获取输入流,并写入数据
13             if(conn.getResponseCode()==200){
14                 InputStream in=conn.getInputStream();
15             /*为写入做准备*/
16                 
17                 //设置存放数据的比特数组,
18                 byte[]arr=new byte[1024];
19                 //设置确定接收数组的长度的变量
20                 int len=0;
21                 //创建用来存放从服务器读取来的数据文件
22                 File file=new File("file\\temp.txt");
23                 //创建写入流
24                 FileOutputStream fos=new FileOutputStream(file);
25                 
26             /* 开始读取和写入数据*/
27                 while((len=in.read(arr))!=-1){
28                     fos.write(arr,0,len);
29                 }
30                 fos.flush();
31             }
32             
33         } catch (MalformedURLException e) {
34             // TODO Auto-generated catch block
35             e.printStackTrace();
36         } catch (IOException e) {
37             // TODO Auto-generated catch block
38             e.printStackTrace();
39         }
40         
41     }

 

/**
*
* 通过Post方法向服务器发送数据和获取数据;
*
* 主要分
*
* 1、准备要发送到服务器的数据
* 2、为发送数据做准备
* 3、提交数据
* 4、为写入数据做准备
* 5、读取服务器返回的数据并写入
* @throws IOException
*
*
*/

 

 1 public String getMsg(String path) throws IOException{
 2         //这里发送的数据是一串字符串(你好呀)
 3         StringBuilder sb=new StringBuilder();
 4         sb.append("你好呀");
 5         
 6         
 7 /*为发送数据做准备*/
 8         
 9         //通过URL地址获取URL对象
10         URL url=new URL(path);
11         //获取链接对象
12         HttpURLConnection conn=(HttpURLConnection) url.openConnection();
13         //设置连接对象的属性
14         conn.setConnectTimeout(5000);
15         conn.setRequestMethod("POST");
16         conn.setDoInput(true);
17         conn.setDoOutput(true);
18         //设置提交数据类型(HTML传送数据必须的)
19         conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
20         //将要传递的数据转换为比特类型
21         byte[]data=sb.toString().getBytes();
22         //设置提交数据的长度
23         conn.setRequestProperty("Content-Length", String.valueOf(data.length));
24         
25 /*提交数据*/
26         OutputStream out=conn.getOutputStream();
27         out.write(data, 0, data.length);
28         out.close();
29         
30         //判断发送数据是否成功
31         if(conn.getResponseCode()==200){
32             InputStream in=conn.getInputStream();
33             
34 /*为写入数据做准备*/    
35             
36             ByteArrayOutputStream bos=new ByteArrayOutputStream();
37             
38             byte []arr=new byte[1024];
39             int len=0;
40             
41 /*读取服务器返回的数据并写入*/
42             while((len=in.read(arr))!=-1){
43                 bos.write(arr, 0, len);
44             }
45             byte[]b=bos.toByteArray();
46             return new String(b,0,b.length,"utf-8");
47         }
48 
49         
50         return null;
51         
52     }

 

相关文章
|
9月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
861 2
|
9月前
|
Android开发 Kotlin
|
10月前
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
720 0
|
11月前
HTTP协议探究:常用方法一网打尽
总的来说,HTTP协议的命令犹如一把钥匙,解锁了互联网世界的大门。它是规则,也是工具,了解了它,就等于掌握了互联网的一把通行证。我们每天都在用,也常常无视它,但是只有深刻理解了它,才能更好地运用它。如此,我们的互联网世界旅程就会变得更加顺畅,更加有趣。
269 14
|
缓存 安全 Java
深入解析HTTP请求方法:Spring Boot实战与最佳实践
这篇博客结合了HTTP规范、Spring Boot实现和实际工程经验,通过代码示例、对比表格和架构图等方式,系统性地讲解了不同HTTP方法的应用场景和最佳实践。
1122 5
|
API 开发者
了解 HTTP 的PUT 与 POST方法的综合指南
HTTP PUT 和 POST 方法是构建 Web 应用与 API 的核心工具,用于资源的创建与更新。PUT 方法通过指定 URL 更新或创建完整资源,具有幂等性;而 POST 方法更灵活,主要用于创建新资源,但不具备幂等性。本文详细对比了两者在请求体、URL 使用、资源处理等方面的区别,并提供了实际应用示例,帮助开发者根据场景选择合适的方法以优化 API 设计。
|
运维 Cloud Native Java
postman发起post请求遇到报错:java.io.FileNotFoundException (文件名、目录名或卷标语法不正确。)
遇到bug报错,多猜可能的原因,控制变量反复测试,直至找到问题的关键,然后再思考如何解决或者回避。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来
|
缓存 安全 API
为什么 HTTP GET 方法不使用请求体?
本指南深入探讨了为什么HTTP GET方法通常不使用请求体,解释了GET方法的主要用途及其设计原则。GET请求旨在通过URL安全、幂等地检索数据,避免因请求体带来的复杂性和潜在问题。尽管HTTP/1.1规范允许GET请求包含请求体,但这并不常见且可能引发副作用。掌握这些原则有助于开发者在API开发中更高效地使用GET请求。
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
2364 83
|
API
掌握 HTTP 请求的艺术:理解 cURL GET 语法
掌握 cURL GET 请求的语法和使用方法是 Web 开发和测试中的基本技能。通过灵活运用 cURL 提供的各种选项,可以高效地与 API 进行交互、调试网络请求,并自动化日常任务。希望本文能帮助读者更好地理解和使用 cURL,提高工作效率和代码质量。
1881 7

热门文章

最新文章