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     }

 

相关文章
|
10天前
|
Java
java原生发送http请求
java原生发送http请求
|
2天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
3天前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
16 1
|
16天前
|
Go
go语言的http post推送
go语言的http post推送
10 1
|
1月前
|
缓存
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
36 0
|
1月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
109 1
|
2月前
|
移动开发 编解码 网络协议
用Java的BIO和NIO、Netty来实现HTTP服务器(三) 用Netty实现
用Java的BIO和NIO、Netty来实现HTTP服务器(三) 用Netty实现
|
7月前
|
Java
JAVA方法的定义
JAVA方法的定义
36 0
|
2月前
|
Java 编译器
探究Java【方法的定义及使用】----【简单面试题】
探究Java【方法的定义及使用】----【简单面试题】
30 2