I';我想在Android studio上发一个POST请求。然而,应用程序停止了
在这种情况下,我试图发布一个“Ocorrecia”。我正在用改装来做这件事。但是,每当我点击按钮提交新的“OCorrecia”时,应用程序就会停止。I';我想在Android studio上发一个POST请求。然而,应用程序停止了,android,android-studio,kotlin,gson,retrofit,Android,Android Studio,Kotlin,Gson,Retrofit,在这种情况下,我试图发布一个“Ocorrecia”。我正在用改装来做这件事。但是,每当我点击按钮提交新的“OCorrecia”时,应用程序就会停止。 以下是我到目前为止的情况: 这是我的界面 interface Endpoint { @GET("ocorrencias") fun getPosts() : Call<List<Ignicoes>> @POST("ocorrencias") fun postIgnicao( @Field("Latitude
以下是我到目前为止的情况: 这是我的界面
interface Endpoint {
@GET("ocorrencias")
fun getPosts() : Call<List<Ignicoes>>
@POST("ocorrencias")
fun postIgnicao(
@Field("Latitude")
Latitude:String,
@Field("Longitude")
Longitude:String,
@Field("Estado")
Estado:String,
@Field("DataInicioPropostaIgnicao")
DataInicioPropostaIgnicao: String,
@Field("DataDecisaoIgnicao")
DataDecisaoIgnicao:String,
@Field("Fotografia")
Fotografia:String,
@Field("Azimute")
Azimute:String
) : Call<Ignicoes>
这是我的网络提示:
class NetworkUtils {
companion object {
/** Retorna uma Instância do Client Retrofit para Requisições
* @param path Caminho Principal da API
*/
fun getRetrofitInstance(path : String) : Retrofit {
return Retrofit.Builder()
.baseUrl(path)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
}
}
下面是我的类的post函数:
趣味postData(){
val-client=NetworkUtils
.GetInstance(“https://localhost:44324/")
val endpoint=client.create(endpoint::class.java)
val callback=endpoint.postinicao(
"40.448365",
"-7.137882",
“亚齐特”,
"2423423",
"自卫队",,
“fdsfds”,
"32")
排队(对象:callback{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(baseContext、t.message、Toast.LENGTH\u SHORT.show())
}
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issusccessful()){
if(response.body()!=null){
Toast.makeText(this@AppFogos,“一个新的环境”,Toast.LENGTH_LONG.show()
}
}
}
})
}
我不知道为什么应用程序停止工作。有人能解释为什么会发生这种情况吗?您是否在manifest.xml中添加了INTERNET权限?是的,我确保添加了所有权限和依赖项。我有一个错误,错误是:“java.lang.IllegalArgumentException:@Field参数只能与表单编码一起使用。”在post方法上方放置标记@FormUrlEncoded。如果不起作用,尝试使用hashmap发送数据,其中键是api属性
class NetworkUtils {
companion object {
/** Retorna uma Instância do Client Retrofit para Requisições
* @param path Caminho Principal da API
*/
fun getRetrofitInstance(path : String) : Retrofit {
return Retrofit.Builder()
.baseUrl(path)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
}
}
val retrofitClient = NetworkUtils
.getRetrofitInstance("https://localhost:44324/")
val endpoint = retrofitClient.create(Endpoint::class.java)
val callback = endpoint.postIgnicao(
"40.448365",
"-7.137882",
"aceite",
"2423423",
"sfsdf",
"fdsfds",
"32")
callback.enqueue(object : Callback<Ignicoes> {
override fun onFailure(call: Call<Ignicoes>, t: Throwable) {
Toast.makeText(baseContext, t.message, Toast.LENGTH_SHORT).show()
}
override fun onResponse(call: Call<Ignicoes>, response: Response<Ignicoes>) {
if (response.isSuccessful()) {
if (response.body() != null) {
Toast.makeText(this@AppFogos, "A ocorrência foi enviada", Toast.LENGTH_LONG).show()
}
}
}
})
}