欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kotlin在处理GET和POST请求的数据问题

程序员文章站 2022-05-09 10:05:31
...

1.网络请求获取到的数据流处理

java写法

1  BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));
2 
3                 String line;
4                 StringBuffer sb = new StringBuffer();
5                 while ((line = br.readLine()) != null) {//cotlin会出现无限循环的语法错误
6                     sb.append(line);
7                 }

Kotlin改写连接字符的几种写法

写法一

var inStrem: InputStream = response.body().byteStream()
                    var br: BufferedReader = BufferedReader(InputStreamReader(inStrem, "utf-8"))
                    var line: String?=null
                    var sb: StringBuffer = StringBuffer()

                    while ({ line = br.readLine(); line }() != null) { // <--- The IDE asks me to replace this line for while(true), what the...?
                        sb.append(line)
                    }

 写法二

 1 while ({line = br.readLine();line}()!=null) { 2 sb.append(line) 3 } 

写法三

  br.lineSequence().forEach { print(it) sb.append(it) }  

2.okhttp处理

public fun connectHttp(url: String) :String? {
        var tempString:String?=null
        var client: OkHttpClient = OkHttpClient()
        val requset = Request.Builder()
                .url(url)
                .post(RequestBody.create(MediaType.parse("text/plain; utf-8"), "this is test"))
                .build()


//异步处理 client.newCall(requset).enqueue(object : Callback { override fun onFailure(request: Request
?, e: IOException?) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } override fun onResponse(response: Response?) { if (response!!.isSuccessful) tempString = response.body().string() TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } }) if (tempString!!.isEmpty()){ return tempString }else return null }

 

数据体常见的请求属性:

/**
* 属性:
text/html HTML格式
text/plain :纯文本格式
text/xml XML格式
image/gif gif图片格式
image/jpeg jpg图片格式
image/pngpng图片格式
application开头的媒体格式类型:

application/xhtml+xml XHTML格式
application/xml XML数据格式
application/atom+xml Atom XML聚合格式
application/json JSON数据格式
application/pdf pdf格式
application/msword Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded <form encType=””>中默认的encTypeform表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
注意:MediaType.parse("image/png")里的"image/png"不知道该填什么,可以参考---http://www.w3school.com.cn/media/media_mimeref.asp
如何使用呢?(在请求体里面写入类型和需要写入的数据,通过post请求)
*/