博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据存储——远程服务器存储——JDK的get请求方式
阅读量:5228 次
发布时间:2019-06-14

本文共 3558 字,大约阅读时间需要 11 分钟。

一.HTTP协议

   1.超文本传输协议

   2.支持客户端/服务器端模式

   3.内容

    1-请求协议

     1>请求报文格式

        1>-请求行:请求方式  请求资源名  协议版本号;

        2>-请求消息头

        3>-请求体

     2>请求方式

        1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高。

        2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔;请求报文没有请求体;请求数据的长度受到浏览器的限制;请求数据保密性低。

    2-响应协议:响应报文格式

     1>响应状态行:描述服务器处理结果;响应状态码为200成功。

     2>响应消息头

     3>响应体

二.方式

   1.JDK方式

   2.Android方式

   3.框架方式

 

JDK的get请求方式  代码

先设置网络访问权限:

1 
2
12 13
18 19
23 24
.xml

 

1 package com.hanqi.testapp3;  2   3 import android.app.ProgressDialog;  4 import android.support.v7.app.AppCompatActivity;  5 import android.os.Bundle;  6 import android.view.View;  7 import android.widget.EditText;  8 import android.widget.Toast;  9  10 import java.io.InputStream; 11 import java.net.HttpURLConnection; 12 import java.net.URL; 13  14 public class TestActivity3 extends AppCompatActivity { 15  16  17     EditText et_2; 18  19     @Override 20     protected void onCreate(Bundle savedInstanceState) { 21         super.onCreate(savedInstanceState); 22         setContentView(R.layout.activity_test3); 23  24         et_2=(EditText)findViewById(R.id.et_2); 25     } 26  27     //JDK的Get方式 28     public void bt1_OnClick(View v) 29     { 30         //1.进度对话框 31         final ProgressDialog progressDialog = ProgressDialog.show(this,null,"正在加载,请稍后..."); 32  33         //2.开启子线程,访问网络 34         new Thread(){ 35             public void run() 36             { 37                 try { 38                 //1.URL 39                 URL url = new URL(et_2.getText().toString() + "?name=tom"); 40  41                 //2.URL获取连接 42                 HttpURLConnection huc = (HttpURLConnection) url.openConnection(); 43  44                 //请求方式 45                 huc.setRequestMethod("GET"); 46  47                 //设置超时 48                 huc.setConnectTimeout(3000); 49                 huc.setReadTimeout(3000); 50  51                 //连接并发送请求 52                 huc.connect(); 53  54                 //接收 55                 //判断返回状态码 200 56                 int code = huc.getResponseCode(); 57  58                 if (code == 200) { 59                     //接收数据 60                     //输入流 61                     InputStream is = huc.getInputStream(); 62  63                     //读取流 64  65                     //1.byte数组 66                     byte[] b = new byte[1024]; 67  68                     //2.读到数组的长度 69                     int i = 0; 70  71                     //3.数据 72                     final StringBuilder sbl = new StringBuilder(); 73  74                     while ((i = is.read(b)) > 0) { 75                         sbl.append(new String(b, 0, i)); 76                     } 77  78                     //释放资源 79                     is.close(); 80                     huc.disconnect(); 81  82                     //通过主线程显示信息和关闭对话框 83                     runOnUiThread(new Runnable() { 84                         @Override 85                         public void run() { 86                             et_2.setText(sbl); 87  88                             progressDialog.dismiss(); 89                         } 90                     }); 91                 } else { 92                     Toast.makeText(TestActivity3.this, "连接错误,返回的状态码=" + code, Toast.LENGTH_SHORT).show(); 93                 } 94             } 95                 catch (Exception e) 96                 { 97                     e.printStackTrace(); 98  99                     progressDialog.dismiss();100                 }101             }102         }.start();103     }104 }
.java

 

转载于:https://www.cnblogs.com/cycanfly/p/5579062.html

你可能感兴趣的文章
Android 应用程序之间数据共享—ContentProvider (涉及访问权限)
查看>>
Android JNI直接调用驱动程序
查看>>
和我一步步部署 kubernetes 集群
查看>>
体验使用MUI上手练习app页面开发
查看>>
百练2755:神奇的口袋(简单dp)
查看>>
文件方式实现完整的英文词频统计实例
查看>>
Mysql中文乱码问题完美解决方案[转]
查看>>
ASP.NET MVC5 生成验证码
查看>>
用JS实现在页面关闭或刷新时触发特定的事件
查看>>
Windows Mysql binlog 数据恢复
查看>>
require() 源码解读
查看>>
使用visual studio配置和运行《opengl圣经》的第一个案例
查看>>
box-shadow
查看>>
难得的品质
查看>>
Android布局属性
查看>>
HDU 2546 饭卡(01背包)
查看>>
大四学生给学弟学妹的一点忠告
查看>>
《小亚和小信》小强,你就长点心吧!
查看>>
iOS- "unacceptable content-type: text/plain"等content-type bug解决方式
查看>>
iOS开发隐藏键盘方法总结
查看>>