/** * 通过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 }