在跟踪了许多帖子和教程超过24小时后,我知道我没有正确发送URL参数。而且我还了解到使用 ApacheHttpClient进行 REST
API调用相对容易一些。我解决了我的HTTP错误代码400,并从服务器获取了响应。这是我的问题的工作代码。
try { httpClient = HttpClients.createDefault(); httpPost = new HttpPost("https://appem.totango.com/api/v1/search/accounts/health_dist"); List<NamevaluePair> headers = new ArrayList<NamevaluePair>(); //ArrayList to store header parameters List<NamevaluePair> urlParameters = new ArrayList<NamevaluePair>(); //ArrayList to store URL parameters urlParameters.add(new BasicNamevaluePair("query","{"terms":[{"type":"totango_user_scope","is_one_of":["mobile+testme@totango.com"]}],"group_fields":[{"type":"health"}]}")); headers.add(new BasicNamevaluePair("app-token", "1a1c626e8cdca0a80ae61b73ee0a1909941ab3d7mobile+testme@totango.com")); headers.add(new BasicNamevaluePair("Accept", "application/json, text/javascript, */*; q=0.01")); headers.add(new BasicNamevaluePair("X-Requested-With", "XMLHttpRequest")); httpPost.setEntity(new UrlEnpredFormEntity(urlParameters)); for (NamevaluePair h : headers) { httpPost.addHeader(h.getName(), h.getValue()); } response = httpClient.execute(httpPost); if (response.getStatusLine().getStatusCode() != 200) { throw new RuntimeException("Failed : HTTP error pre : " + response.getStatusLine().getStatusCode()); } BufferedReader br = new BufferedReader(new InputStreamReader( (response.getEntity().getContent()))); String output; System.out.println("Output from Server .... n"); while ((output = br.readLine()) != null) { System.out.println(output); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try{ response.close(); httpClient.close(); }catch(Exception ex) { ex.printStackTrace(); } }


