Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我想在Android studio上发一个POST请求。然而,应用程序停止了_Android_Android Studio_Kotlin_Gson_Retrofit - Fatal编程技术网

I';我想在Android studio上发一个POST请求。然而,应用程序停止了

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

在这种情况下,我试图发布一个“Ocorrecia”。我正在用改装来做这件事。但是,每当我点击按钮提交新的“OCorrecia”时,应用程序就会停止。
以下是我到目前为止的情况: 这是我的界面

   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()


                }
            }

        }
    })
}