我正在尝试触发一个API,我需要在其中添加两个标头,即token和deviceid。下面是我添加标题的代码:
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:Not Found
当我用任何字母数字值替换令牌时,我收到错误消息的响应。但是当我通过上面提到的实际令牌值时,我得到了异常。即使我尝试使用addHeader功能,但同样的问题。我无法理解如何解决此错误。
答案 0 :(得分:1)
它是导致错误的处理程序。不要使用。 您应该编写自己的处理程序,或者在没有处理程序的情况下调用execute。
httpClient.execute(httpPost);//remove the handler
我希望这会有所帮助。 THANKYOU
答案 1 :(得分:0)
您的令牌似乎不正确。 HTTP协议中设置的标头有自己的限制。要检查它,只需尝试发送修剪标记(ex 30 chars)。
如果没有帮助,则您的其他参数不正确。无论如何,我会给你建议,使用Retrofit。