【发布时间】:2016-03-29 12:38:38
【问题描述】:
我正在尝试触发一个 API,我需要在其中添加两个标头,即令牌和设备 ID。下面是我添加标题的代码:
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 函数,但也遇到了同样的问题。我无法理解如何解决此错误。
【问题讨论】:
-
就此咨询您的网络服务开发人员
-
在咨询之前,我想确保我的代码正确与否。错误不应该在我的最后。
-
在设备 ID 或令牌无效的情况下似乎找不到
-
尝试用wireshark调试它。在那里您可以看到您发送的整个 http 消息。如果您发送的标头正确,请尝试联系 Web 服务开发人员。
标签: android rest http-headers