我是 android studio 和 kotlin 的业余爱好者。但是,我正在设计一个应用程序,我在其中收集用户数据并需要以匿名方式将其发布到 AWS s3 而无需 cognito 身份验证。我已经完成了将图像上传到 aws S3 的示例,但是如何将我的 json 对象发布到 AWS S3。我已经阅读了一些文档,但我被困在transferutility.upload
. 因为大多数用于上传的代码片段都在谈论一个文件,所以我冻结在那里,因为我只想发布我的对象。
我到目前为止所尝试的。接口代码:
interface IMyAPI {
@GET("child/{dynamic}/learningpods_new")
fun getDynamic(@Path("dynamic")dynamic:String):Observable<ArrayList<Data>>
@POST("parent/")
fun createParent(@Body parentDetails: ParentDetails):Call<ParentDetails>
}
我能够从指定的端点获取,但我不想发布到同一个端点。
改造代码:
object RetrofitClient {
private var OurInstance : Retrofit?=null
val instance:Retrofit
get() {
if (OurInstance==null)
{
OurInstance =Retrofit.Builder()
.baseUrl("http://coreapi.imagin8ors.org:8080/v1/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
}
return OurInstance!!
}
}
发布代码片段:
val retrofit = RetrofitClient.instance
jsonAPI = retrofit.create(IMyAPI::class.java)
val call=jsonAPI.createParent(new_parent)
call.enqueue(object :Callback<ParentDetails>{
override fun onFailure(call: Call<ParentDetails>?, t: Throwable?) {
Toast.makeText(this@ParentmainActivity,"something went wrong",Toast.LENGTH_LONG).show()
}
override fun onResponse(call: Call<ParentDetails>?, response: Response<ParentDetails>?) {
Toast.makeText(this@ParentmainActivity,"successful :"+response?.code(),Toast.LENGTH_LONG).show()
}
})
任何帮助表示赞赏。