Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Android改造Api响应在传递参数体中的查询令牌时给出null_Android_Api_Parameters_Retrofit_Token - Fatal编程技术网

Android改造Api响应在传递参数体中的查询令牌时给出null

Android改造Api响应在传递参数体中的查询令牌时给出null,android,api,parameters,retrofit,token,Android,Api,Parameters,Retrofit,Token,下图是whatsap api的响应,它在postman上运行良好 但当我尝试在android项目上使用改型来运行它时,它给出的是空响应 这是我的api参数,在ANDROID中: fun getData(mainActivity: MainActivity): Boolean { val params = HashMap<String, Any>() params["phone"] = "+923364451111@c.us

下图是whatsap api的响应,它在postman上运行良好

但当我尝试在android项目上使用改型来运行它时,它给出的是空响应

这是我的api参数,在ANDROID中:

fun getData(mainActivity: MainActivity): Boolean {
        val params = HashMap<String, Any>()
        params["phone"] = "+923364451111@c.us"
        params["body"] = "Zeeshan Hello, world! "

            retrofitClient.abc("01jideaw5zab024y", params).enqueue(object : Callback<Whatsapp> {
                override fun onResponse(call: Call<Whatsapp>, response: Response<Whatsapp>) {
                    Log.d("SoS", "response: " + response.body())
                    Log.d("SoS", "response: " + response.body()?.sent)
                }

                override fun onFailure(call: Call<Whatsapp>, t: Throwable) {
                    Log.d("SoS", "error: " + t.message)
                }
            })
}

我认为我没有正确使用参数。任何人都可以在这里帮助我如何使用参数。

我认为这不够小,无法放入注释中,因此我将添加作为答案。我猜这里有些东西

我最简单的猜测就是你在URL中的路径。如图所示,它应该是
实例259349/sendMessage
,但在您的界面中您有:

@POST("/sendMessage")
即使改装实例中的基本url为
https://api.chat-api.com/instance259349
,它将转换为
https://api.chat-api.com/sendMessage
(不含实例部分),因为改装如何处理领先的
/
。检查这一点的快速方法是删除前导的
/
,只需使用
@POST(“sendMessage”)
,或者,如果您的基本url不包括实例部分,请使用
@POST(“instance259349/sendMessage”)


另一个可能发生的问题是,引擎盖下的邮递员添加了应用程序没有的标题。服务器可能需要这些头,因此返回错误

我建议查看
response.errorBody()
以及响应的状态,以了解您遇到的错误。请注意,如果我的第一个猜测是正确的,您可能会得到一个
404notfound
,因为该路径不存在


如果您不想手动检查,一个更容易的方法是使用。

如果您可以共享
Whatsapp
类了解更多信息,这将非常有用clarification@HosseinFarrokhi刚刚编辑了我的问题,似乎还可以。无论如何,将
loggingInterceptor
添加到您的应用程序中,以查看
logcat
中的请求详细信息。它可以帮助您轻松调试网络请求。如果您能告诉我如何准确地编写端点、令牌和基本url,我将非常感谢您。我按照您的要求使用了实例,但仍然得到空正文,我认为我使用的令牌不正确。@Zeeshanfared根据您所做的和邮递员的图片,令牌似乎很好。您是否尝试了我提到的关于基本url和
@POST
中的路径的内容?是的,我尝试了您要求的内容,但仍然得到Null和无错误正文@泽沙法雷德
class Whatsapp{
    @SerializedName("sent")
    @Expose
    var sent: Boolean? = null

    @SerializedName("message")
    @Expose
    var message: String? = null

    @SerializedName("id")
    @Expose
    var id: String? = null

    @SerializedName("queueNumber")
    @Expose
    var queueNumber: Int? = null
}
@POST("/sendMessage")