我需要上传文件到服务器,无论是jpeg或GIF。
到目前为止,我使用的是loopj AsyncHttpClient,这个漂亮的库非常简单:
val params = RequestParams()
params.put("userid", prefs!!.getLong("userid", 0))
params.put("file", finalInputSteam)
但是当url为https时,我不能将它用于较旧的Android API。
那么如何用凌空抽射做到这一点呢? 除了loopj之外的任何东西似乎都是完全的垃圾,通常需要解决方法(例如:Android kotlin-volley在JsonArrayRequest中设置POST参数),而且文档非常贫乏:/
这是我目前所掌握的:
val request = object: StringRequest(
Method.POST,
"$domain/upload.php",
Response.Listener<String> {
finish()
}, Response.ErrorListener { volleyError ->
})
{
override fun getParams(): MutableMap<String, String> {
val parameters = HashMap<String, String>()
parameters["userid"] = prefs!!.getLong("userid", 0).toString()
parameters["file"] = finalInputSteam!!
return parameters
}
}
val rQueue = Volley.newRequestQueue(this@UploadImage)
rQueue.add(request)
我得到一个错误,因为FinalInputSteam
是InputStream
而不是String
,那么如何做到这一点呢?
你查过这个链接了吗? 这个链接向您展示了如何做,同时,我建议您使用Retrofit2。