如何正确编写@POST请求?

时间:2020-10-11 11:13:49

标签: android post retrofit retrofit2

我试图提出一个@POST请求。当我发出请求时

 @POST("/testAPI")
    @Headers("token: rAhUCUo-wz-Sbtwjt1")
    @FormUrlEncoded
    Call<GetEntires> getEntires(@Field("a")String method,
                                @Field("session")String SessionId);

我得到响应:站点API的HTML代码,但是当我在特殊程序(Chrome应用程序-ARC)中发出请求时,我得到了正确的响应,它等于API文档中的响应。 API文档中的请求示例:

curl --header "token: EXAMPLETOKEN" --data "a=new_session" https://bnet.i-partner.ru/testAPI/

我在哪里犯错了?

enter image description here

更新: 来自应用ARC的文本中的请求外观:

POST /testAPI/ HTTP/1.1
HOST: bnet.i-partner.ru
token: rAhUCUo-wz-Sbtwjt1
content-type: multipart/form-data; boundary=----WebKitFormBoundaryLA3TDEc7BbGOFNMS
content-length: 256

------WebKitFormBoundaryLA3TDEc7BbGOFNMS
Content-Disposition: form-data; name="a"

get_entries
------WebKitFormBoundaryLA3TDEc7BbGOFNMS
Content-Disposition: form-data; name="session "

tThEPaP7uvGWje176p
------WebKitFormBoundaryLA3TDEc7BbGOFNMS--

服务器的响应:

{
"status": 1,
"data": [
  [],
],
}

1 个答案:

答案 0 :(得分:0)

对我来说,它有效:

@Multipart
    @POST("/testAPI")
    fun createPost(@Part("a") post: String?,
                   @Part("session") post2: String?): Call<Post?>?

我使用了@Part