Android 中的 HTTP 请求 header 问题

HTTP Request header issue in Android

我正在尝试触发一个 API,我需要在其中添加两个 header,即令牌和设备 ID。下面是我添加 header:

的代码
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(nameValuePairs[0].get(0).getValue().toString());
        nameValuePairs[0].remove(0);

        ResponseHandler<String> res = new BasicResponseHandler();

        // set header

        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
        httpPost.setHeader("deviceid", "358978060711939");
        httpPost.setHeader("token", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJHVUlEIjoiYjdlNjZiOWQtMjBjNy00MGI2LTliMzgtOTc3OGQ2OWIwM2E1IiwiRU5USVRZIjoiRUFCTSIsIlVOSVQiOiJVQk0yIiwiUk9MRU5BTUUiOiJTRUxGIiwiSUQiOiIwMDAyMzciLCJBTFRJRCI6IjMzMyIsIlVTRVJfTkFNRSI6IkFuaWwiLCJMT0dJTl9HVUlEX0tFWSI6ImU2NWM2YWEzLTZlNDItNDUyYS1hOGEwLWRlYzRhMGRiNTIxNyIsImlhdCI6MTQ1OTI0ODkyM30.m742d9xd6XlBBjZ3_ODWuoCEdWvSkhPAuNrDee1vi74");

        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs[0]));
        response = httpClient.execute(httpPost, res);

在响应中我得到:org.apache.http.client.HttpResponseException:未找到

当我用任何字母数字值替换令牌时,我收到了带有错误消息的响应。但是当我传递上面提到的实际令牌值时,我遇到了异常。即使我也尝试使用 addHeader 函数,但遇到了同样的问题。我无法理解如何解决此错误。

这是导致错误的处理程序。不要使用。 您应该编写自己的处理程序或在没有处理程序的情况下调用执行。

 httpClient.execute(httpPost);//remove the handler

希望对您有所帮助。谢谢

您的令牌似乎不正确。 Header HTTP 协议中的设置有其自身的限制。要检查它,只需尝试发送您的 trim 令牌(例如 30 个字符)。

如果没有帮助,则您的另一个参数不正确。无论如何,我会给你建议,使用 Retrofit.