安卓比较热的第三方库okHttp iOS oc Afnetworking swift Alamofire 说跑题了
1 添加依赖吧build.gradle 好像有点时间长网络问题
implementation("com.squareup.okhttp3:okhttp:4.2.2")
- 咱们先不搞什么封装就简单的使用
- 见一个按钮button
- 添加点击事件
- 代码调用接口 此以POST为例
将下面的代码设为的属性初始化值
val client = OkHttpClient()
val JSON: MediaType = "application/json".toMediaType()
然后在点击事件里
fun loginApi(view: View){
var params:MutableMap<String,Any> = mutableMapOf<String,Any>()
params.set("cellphone","0001211")
params.set("country_code","+63")
params.set("verification_code","334455")
val baseUrl = "自己的域名"
var url = "$baseUrl/path路径"
val json = JSONObject()
json.put("参数1", "value")
json.put("参数2", "value")
json.put("参数3", "value")
// body 里添加参数
val requestBody: RequestBody = json.toString().toRequestBody(JSON)
// 以前是这样的
// val requestBody: RequestBody = RequestBody.create(JSON, json.toString())
// RequestBody.create()
var builder = Request.Builder()
builder.url(url)
builder.addHeader("Content-Type","application/json")
.addHeader("参数1","value")
.addHeader("参数2","value")
.post(requestBody)
client.newCall(builder.build()).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
println("————失败了$e")
}
override fun onResponse(call: Call, response: Response) {
var stA = response.body!!.string()
println("————成功 $stA")
runOnUiThread(){
// 回到主线程刷新UI吧
textView22!!.text = stA
}
}
})
}
- 为什么没有响应呢,iOS里面不配置权限普通的http是不起作用的那么安卓也是,是要权限的AndroidManifest.xml 的 </manifest> 里
<!--网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
网友评论