数据存储——远程服务器存储——JDK的get请求方式

一.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请求方式  代码

先设置网络访问权限:

<uses-permission android:name="android.permission.INTERNET"/>

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp3.TestActivity3"
11     android:orientation="vertical">
12
13     <Button
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="JDK-Get方式"
17         android:onClick="bt1_OnClick"/>
18
19     <EditText
20         android:layout_width="match_parent"
21         android:layout_height="200dp"
22         android:id="@+id/et_2"/>
23
24 </LinearLayout>

.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

时间: 2024-10-06 12:05:29

数据存储——远程服务器存储——JDK的get请求方式的相关文章

数据储存——远程服务器存储——JDK方式

JDK方式 API 一.URL 1.new  URL("http://网络资源路径") 2.openConnection(),返回URLConnection对象 二.HttpURLConnection 1.setRequestMethod(“GET”/“POST”):设置请求方式 2.setConnectTimeout(毫秒数):设置连接超时时间 3.setReadTimeout(毫秒数):设置读超时时间 4.connect( ):连接服务器,发送请求 5.getOutputStrea

数据储存——远程服务器存储——JSON

JSON 一.特点 1.JavaScript Object Notation 2.一种轻量级的数据交互格式 二.格式 1.[ ] 数组:[value1, value2, value3...] 2.{ } 对象:{key1:value1, key2:value2, key3:value3,...} 1-key:字符串,表示对象的属性 2-value:表示属性的值 数据类型:数值,字符串,null,json数组,json对象. 三.API 1.Android原生 2.第三方框架 1 <?xml ve

数据储存——远程服务器存储——框架方式

一.Volley 1.特点 ①轻量级的Android网络通信库 ②适合数量不大但通信频繁的场景 2.API 1.RequestQueue ①请求队列 ②Volley.newRequestQueue(context) 创建或得到请求队列    单例模式 ③add(Request)添加请求到队列中 2.Request ①封装请求的基类 ②子类 1)StringRequest  返回字符串的请求 构造方法: new  StringRequest(get_path,正常响应监听,异常响应监听)   实现

远程服务器存储之JDK方式

一.API 1.new  URL("http://网络资源路径") 2.openConnection(),返回URLConnection对象 二.HttpURLConnection 1.setRequestMethod(“GET”/“POST”):设置请求方式 2.setConnectTimeout(毫秒数):设置连接超时时间 3.setReadTimeout(毫秒数):设置读超时时间 4.connect( ):连接服务器,发送请求 5.getOutputStream( ):得到连接输

远程服务器存储之JDK的get请求方式

一.HTTP协议 1.超文本传输协议 2.支持客户端/服务器端模式 3.内容 1-请求协议 1>请求报文格式 1>-请求行:请求方式  请求资源名  协议版本号; 2>-请求消息头 3>-请求体 2>请求方式 1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高. 2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔:请求报文没有请求体:请求数据的长度受到浏览器的限制:请求数据保密

WCF LIST 传输大数据,远程服务器返回了意外响应 400

WCF传输LIST 大数据量 出现 远程服务器返回了意外响应 400 错误提示. 出现这个问题,各种搜索,都没有解决问题,而且有些都比较复杂,自己琢磨了一下,其实也不是很难,好了,看下面方案.解决方案:在web.config(host)端<system.serviceModel>节中, 增加 services 节 如下:<services>      <service behaviorConfiguration="app.dcgkbehavior" nam

Android——JDK的get请求方式

layout文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="ma

JDK的get请求方式

layout: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent

远程服务器存储之JSON

一.特点 1.JavaScript Object Notation 2.一种轻量级的数据交互格式 二.格式 1.[ ] 数组:[value1, value2, value3...] 2.{ } 对象:{key1:value1, key2:value2, key3:value3,...} 1-key:字符串,表示对象的属性 2-value:表示属性的值 数据类型:数值,字符串,null,json数组,json对象. 三.API 1.Android原生 2.第三方框架 JSON代码展示: 1 <?x