【问题标题】:404 Response with Retrofit POST request with Headers parameters带有 Headers 参数的 Retrofit POST 请求的 404 响应
【发布时间】:2019-10-09 16:23:05
【问题描述】:

我是 Retrofit 库的新手。当我使用 @HeaderMap 注释使用 hashMap 发送带有标头参数的 post 请求时。

下面是我的代码

 @POST(Constants.UrlPath.POST_CLOSE_EVENT)
Call<ResponseBody> callDeleteEventRequest(@HeaderMap Map <String, String>id);

我在这里使用HashMap 发送标头,就像这样。

 HashMap<String, String> headers = new HashMap<>();
                 headers.put("eventId", String.valueOf(1));

我收到 404 错误响应。请有人帮助我。 我查看了一些 Stack Overflow 链接,但我再次收到此错误。

【问题讨论】:

    标签: android header retrofit2 response


    【解决方案1】:

    试试这个:

    @FormUrlEncoded
    @POST(Constants.UrlPath.POST_CLOSE_EVENT)
    Call<ResponseBody> callDeleteEventRequest(@FieldMap Map <String, String>id);
    

    【讨论】:

    • 我这里有任何身体参数。但是如果我尝试这个,我会遇到一些错误
    【解决方案2】:

    在你的接口类中添加标题:

     @Headers({"Content-Type: application/json",
            "eventId: 1"})
    @POST(Constants.UrlPath.POST_CLOSE_EVENT)
    Call<ResponseBody> callDeleteEventRequest();
    

    【讨论】:

    • 如果您有任何疑问,请发表评论
    • 我遇到了错误。 POST url:8080/eventInfo/deleteEvent D/OkHttp: Content-Type: application/json D/OkHttp: Content-Length: 0 D/OkHttp: eventId: 1 D/OkHttp: --> END POST (0-byte body) D/OkHttp: url:8080/eventInfo/deleteEvent (252ms) D/OkHttp: Content-Type: text/html;charset=utf-8 D/OkHttp: Content-Language: en D/OkHttp: Content-Length: 1091 D/OkHttp: HTTP 状态 404 – 未找到
    • 你想在标题中发送什么?
    • header map 的数据也和你放在@Headers("eventId: 1") 上的数据一样
    • 移除 HeaderMap
    【解决方案3】:

    检查您的路径Constants.UrlPath.POST_CLOSE_EVENT 是否正确。 尝试使用 postman 拨打电话,无论它是否正常工作。

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 2017-02-25
      • 2022-01-25
      • 2016-06-11
      • 2020-05-27
      相关资源
      最近更新 更多