网络

WebView

class MainActivity : AppCompatActivity() {
    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val webview:WebView = findViewById(R.id.webview)
        webview.settings.javaScriptEnabled = true
        webview.webViewClient = WebViewClient()
        //当从一个网页跳到另一个网页时,保持目标网页仍在webView中显示。而不是打开系统浏览器
        webview.loadUrl("https://www.baidu.com/")
    }
}

OKHTTP库

class MainActivity : AppCompatActivity() { 
 
    override fun onCreate(savedInstanceState: Bundle?) { 
        super.onCreate(savedInstanceState) 
        setContentView(R.layout.activity_main) 
        sendRequestBtn.setOnClickListener { 
            sendRequestWithOkHttp() 
        } 
    } 
    private fun sendRequestWithOkHttp() { 
        thread { 
            try { 
                val client = OkHttpClient() 
                val request = Request.Builder() 
                    .url("https://www.baidu.com") 
                    .build() 
                val response = client.newCall(request).execute() 
                // 发送请求并获取服务器返回的数据
                val responseData = response.body?.string()
                // 获取返回的数据 
                if (responseData != null) { 
                    showResponse(responseData) 
                } 
            } catch (e: Exception) { 
                e.printStackTrace() 
            } 
        } 
    } 
} 

如果是post请求:

 val requestBody = FormBody.Builder() 
        .add("username", "admin") 
        .add("password", "123456") 
        .build() 
   // 构建发送数据的body
 val request = Request.Builder() 
        .url("https://www.baidu.com") 
        .post(requestBody) // 调用post方法
        .build() 

解析XML格式数据

private fun parseXMLWithPull(xmlData: String) { 
        try { 
            val factory = XmlPullParserFactory.newInstance() 
            val xmlPullParser = factory.newPullParser() 
            xmlPullParser.setInput(StringReader(xmlData)) 
            var eventType = xmlPullParser.eventType 
            var id = "" 
            var name = "" 
            var version = "" 
            while (eventType != XmlPullParser.END_DOCUMENT) { 
                val nodeName = xmlPullParser.name 
                when (eventType) { 
                    //  
                    XmlPullParser.START_TAG -> { 
                        when (nodeName) { 
                            "id" -> id = xmlPullParser.nextText() 
                            "name" -> name = xmlPullParser.nextText() 
                            "version" -> version = xmlPullParser.nextText() 
                        } 
                    } 
                    //  
                    XmlPullParser.END_TAG -> { 
                        if ("app" == nodeName) { 
                            Log.d("MainActivity", "id is $id") 
                            Log.d("MainActivity", "name is $name") 
                            Log.d("MainActivity", "version is $version") 
                        } 
                    } 
                } 
                eventType = xmlPullParser.next() 
            } 
        } catch (e: Exception) { 
            e.printStackTrace() 
        } 
    } 

解析json格式数据

 private fun parseJSONWithJSONObject(jsonData: String) { 
        try { 
            val jsonArray = JSONArray(jsonData) 
            for (i in 0 until jsonArray.length()) { 
                val jsonObject = jsonArray.getJSONObject(i) 
                val id = jsonObject.getString("id") 
                val name = jsonObject.getString("name") 
                val version = jsonObject.getString("version") 
                Log.d("MainActivity", "id is $id") 
                Log.d("MainActivity", "name is $name") 
                Log.d("MainActivity", "version is $version") 
            } 
        } catch (e: Exception) { 
            e.printStackTrace() 
        } 
    } 

处理回调

  • 39
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值