Java 改装多个POST请求

Java 改装多个POST请求,java,kotlin,retrofit2,okhttp3,Java,Kotlin,Retrofit2,Okhttp3,我是新使用这个库的,在我们项目中的一些RESTAPI中尝试了它,它的性能非常好 现在我试图在基于ArrayList项的循环中创建一个POST请求,这可能吗?还是有更好的方法 下面是我的一些代码,帮助你理解我的想法 MContacts.tk data class MContacts(val name:Sting,val contact:String,val address:String){ companion object { val name = "name"

我是新使用这个库的,在我们项目中的一些RESTAPI中尝试了它,它的性能非常好

现在我试图在基于ArrayList项的循环中创建一个POST请求,这可能吗?还是有更好的方法

下面是我的一些代码,帮助你理解我的想法

MContacts.tk

  data class MContacts(val name:Sting,val contact:String,val address:String){ 
    companion object {
      val name = "name"
      val contact = "contact"
      val address = "address"
    }
  }
芹菜

object ApiUtils {
    val BASE_URL = "http://api.link.com/"
    fun getSOService(): ApiService {
        return RetrofitClient.getClient(BASE_URL).create(ApiService::class.java)
    }
}
改造客户

object RetrofitClient {

    private var retrofit: Retrofit? = null

    fun getClient(baseUrl: String): Retrofit {
        if (retrofit == null) {
            retrofit = Retrofit.Builder()
                    .baseUrl(baseUrl)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build()
        }
        return retrofit!!
    }
}
蜂房服务

interface ApiService {
    @POST("api/postcontact")
    @FormUrlEncoded
    fun postContact(
            @Field("name") name:String,
            @Field("contact") contact:String
            @Field("address") address:String
            )
            :Call<ContactResponse>
}
接口服务{
@发布(“api/postcontact”)
@FormUrlEncoded
有趣的后接触(
@字段(“名称”)名称:字符串,
@字段(“联系人”)联系人:字符串
@字段(“地址”)地址:字符串
)
:呼叫
}
活动

var listContacts : ArrayList<MContacts> = ArrayList()
var btnPost:Button? = null
private var mService: ApiService? = null

override fun onCreate(..){


   mService = ApiUtils.getSOService()

   btnPost = find<Button>(R.id.btnPost)

   listContacts.add(MContacts("name-abc","98765632","address 1"))
   listContacts.add(MContacts("name-ab1","9876562","address 2"))
   listContacts.add(MContacts("name-bs","9876465","address 3"))
   listContacts.add(MContacts("name-df","98876356","address 4"))
   listContacts.add(MContacts("name-da","9876533","address 5"))


   btnPost.setOnClickListener{
      //in here my question begins on how can i post all of the listContacts items
      // is ok to make just make a loop of post request like this ?

      for(i in 0 until listContacts.size){
       postnow(
              listContacts.get(i).name,
              listContacts.get(i).contact,
              listContacts.get(i).address )
      }

   } 
}
var-listContacts:ArrayList=ArrayList()
var btnPost:按钮?=无效的
专用var mService:ApiService?=无效的
重写onCreate(..){
mService=ApiUtils.getSOService()
btnPost=find(R.id.btnPost)
添加(MContacts(“姓名abc”、“98765632”、“地址1”))
添加(MContacts(“name-ab1”、“9876562”、“address 2”))
添加(MContacts(“名称bs”、“9876465”、“地址3”))
添加(MContacts(“名称df”、“98876356”、“地址4”))
添加(MContacts(“名称da”、“9876533”、“地址5”))
btnPost.setOnClickListener{
//在这里,我的问题是如何发布所有listContacts项目
//可以这样循环post请求吗?
用于(在0中输入i,直到listContacts.size){
现在(
listContacts.get(i).name,
listContacts.get(i).contact,
listContacts.get(i).地址)
}
} 
}
后功能

fun postnow(name:String,contact:String,address:String){

   mService!!.postContact(  name ,  contact,   address  ).enqueue(object : Callback<LoginResponse> {
              override fun onResponse(call: Call<LoginResponse>, response: Response<LoginResponse>) {

               if (response.isSuccessful()) { 

               } else {

               }
            }

              override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
                   Log.d("app", "error loading from API")
                 }
            })
}
fun postnow(姓名:String,联系人:String,地址:String){
mService!!.postContact(姓名、联系人、地址)。排队(对象:回调){
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issusccessful()){
}否则{
}
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Log.d(“应用程序”,“从API加载错误”)
}
})
}

谢谢你花时间帮忙。给出您的更正、评论和建议

是。可能的更好的方式包括接收,或执行。谢谢回复。你能给我一些片段,我应该把它放在哪里。