程序清单文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.hanqi.cunchu"> 4 5 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 6 <!-- 操作文件权限 --> 7 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 8 9 <uses-permission android:name="android.permission.INTERNET"/> 10 11 <application 12 android:allowBackup="true" 13 android:icon="@mipmap/ic_launcher" 14 android:label="@string/app_name" 15 android:supportsRtl="true" 16 android:theme="@style/AppTheme"> 17 <activity android:name=".MainActivity" /> 18 <activity android:name=".lianxi" /> 19 <activity android:name=".shujuku"> 20 21 </activity> 22 <activity android:name=".TestActivity3"> 23 <intent-filter> 24 <action android:name="android.intent.action.MAIN" /> 25 <category android:name="android.intent.category.LAUNCHER" /> 26 </intent-filter> 27 </activity> 28 </application> 29 30 </manifest>
界面文件代码
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:orientation="vertical" 8 tools:context="com.hanqi.cunchu.TestActivity3"> 9 <Button 10 android:layout_width="match_parent" 11 android:layout_height="wrap_content" 12 android:text="JDK-GET方式" 13 android:onClick="bt1_onclick"/> 14 <EditText 15 android:layout_width="match_parent" 16 android:layout_height="200dp" 17 android:id="@+id/et_2"/> 18 </LinearLayout>
程序运行代码
1 package com.hanqi.cunchu; 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.URL; 12 13 import javax.net.ssl.HttpsURLConnection; 14 15 public class TestActivity3 extends AppCompatActivity { 16 EditText et_2; 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_test3); 21 22 et_2=(EditText)findViewById(R.id.et_2); 23 } 24 //JDK的get方式 25 public void bt1_onclick(View v) 26 { 27 //1-进度对话框 28 final ProgressDialog progressDialog = ProgressDialog 29 .show(this, null, "正在加载中. . ."); 30 //2-开启子线程,访问网络 31 new Thread() 32 { 33 public void run() 34 { 35 try 36 { 37 //1-URL 38 URL url = new URL(et_2.getText().toString()+"?name=tom"); 39 //2-URL获取连接 40 HttpsURLConnection httpsURLConnection = (HttpsURLConnection)url.openConnection(); 41 //请求方式 42 httpsURLConnection.setRequestMethod("GET"); 43 //设置超时 44 httpsURLConnection.setConnectTimeout(3000); 45 httpsURLConnection.setReadTimeout(3000); 46 //连接并发送请求 47 httpsURLConnection.connect(); 48 //接收:判断返回状态码-200 49 int code = httpsURLConnection.getResponseCode(); 50 if (code==2000) 51 { 52 //接收数据 53 //输入流: 54 InputStream inputStream = httpsURLConnection.getInputStream(); 55 //读取流 56 //1-byte数组 57 byte[]bytes = new byte[1024]; 58 //2-读到数组的长度 59 int i = 0; 60 //3-数据 61 final StringBuffer stringBuffer1 = new StringBuffer(); 62 while((i=inputStream.read(bytes))>0) 63 { 64 stringBuffer1.append(new String(bytes,0,i)); 65 } 66 //释放资源 67 inputStream.close(); 68 httpsURLConnection.disconnect(); 69 70 //通过主线程显示信息和关闭对话框 71 runOnUiThread(new Runnable() { 72 @Override 73 public void run() { 74 et_2.setText(stringBuffer1); 75 progressDialog.dismiss(); 76 } 77 }); 78 } 79 else 80 { 81 Toast.makeText(TestActivity3.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show(); 82 } 83 } 84 catch (Exception e) 85 { 86 e.printStackTrace(); 87 progressDialog.dismiss(); 88 } 89 } 90 }.start(); 91 } 92 }