Android_NetWork_Test
生活随笔
收集整理的這篇文章主要介紹了
Android_NetWork_Test
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- api27以前
- 配置文件申請網絡權限
- 異步發送網絡請求
- 使用HttpURLConnection
- api27以后
- 換成商城api
- Gsonfomat插件:
api27以前
配置文件申請網絡權限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>異步發送網絡請求
使用HttpURLConnection
package com.kanxue.androidnetwork;import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View;import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; import java.util.Set;public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void loadJson(View view){new Thread(new Runnable() {@Overridepublic void run() {try {URL url =new URL("http://192.168.31.65:9102/get/text");HttpURLConnection httpURLConnection =(HttpURLConnection)url.openConnection();httpURLConnection.setConnectTimeout(10000);httpURLConnection.setRequestMethod("GET");httpURLConnection.setRequestProperty("Accept-Language","zh-CN,zh;q=0.9");httpURLConnection.setRequestProperty("Accept-Encoding","gzip, deflate, br");httpURLConnection.setRequestProperty("Accept","*/*");httpURLConnection.connect();int responseCode=httpURLConnection.getResponseCode();if(responseCode==200){Map <String, List<String>> headerFields=httpURLConnection.getHeaderFields();Set <Map.Entry<String, List<String>>> entries=headerFields.entrySet();for (Map.Entry<String, List<String>> entry:entries){Log.d(TAG,entry.getKey() +"=="+entry.getValue());}Object content=httpURLConnection.getContent();Log.d(TAG,"content --->"+content);}} catch (Exception e) {e.printStackTrace();}}}).start();} } InputStream inputStream =httpURLConnection.getInputStream(); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); String line=bufferedReader.readLine();api27以后
同樣的代碼,api29顯示如下報錯
在manifest里面application標簽加入一行代碼:
變成了這樣:
<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:usesCleartextTraffic="true"android:theme="@style/Theme.AndroidNetWork" >換成商城api
URL url =new URL("https://api.sunofbeaches.com/shop/discovery/categories"); android:networkSecurityConfig=""usesCleartextTraffic直接寫成true就行,networkSecurityConfig需要寫一個網絡配置文件(在res目錄下創建一個xml目錄,xml目錄放一個關于網絡配置的xml文件)
https://developer.android.google.cn/training/articles/security-config#manifest
修改之后如下:
這里為什么要那么改呢,因為我們案例訪問的網址是:
https://api.sunofbeaches.com/shop/discovery/categories然后配置文件寫入androidManifest文件中,如下:
<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:usesCleartextTraffic="true"android:networkSecurityConfig="@xml/network_sercurity"android:theme="@style/Theme.AndroidNetWork" >Gsonfomat插件:
不能勾選這個:
總結
以上是生活随笔為你收集整理的Android_NetWork_Test的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: androidstuido_school
- 下一篇: android sina oauth2.