Java 改装多个POST请求
我是新使用这个库的,在我们项目中的一些RESTAPI中尝试了它,它的性能非常好 现在我试图在基于ArrayList项的循环中创建一个POST请求,这可能吗?还是有更好的方法 下面是我的一些代码,帮助你理解我的想法 MContacts.tkJava 改装多个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"
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加载错误”)
}
})
}
谢谢你花时间帮忙。给出您的更正、评论和建议是。可能的更好的方式包括接收,或执行。谢谢回复。你能给我一些片段,我应该把它放在哪里。