【发布时间】:2012-10-05 20:09:45
【问题描述】:
我正在尝试让应用程序连接到 Google Plus API,但为此我需要对一些请求参数保密。这就是为什么我不能只发出一个简单的 ajax 请求或创建一个带有隐藏输入的表单。我的解决方案是向 servlet 发出请求,然后从那里向 HttpClient 发出另一个向 Google 的请求。 问题来了:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(TestClass.makeRequest());
}
TestClass.makeRequest() 创建 HttpPost 对象,获取响应并返回一个字符串。
当我在服务器上运行它时,我得到了这个错误:
java.lang.ClassNotFoundException: org.apache.http.HttpEntity
我不明白为什么会这样。你能提供一个解决方案吗? 在请求中传输隐藏参数的任何其他方法都会有所帮助。
【问题讨论】:
-
什么是
TestClass?它是否引用了您的开发环境中存在但不在您的服务器上的任何库? -
您的 servlet 类路径中似乎缺少
httpcore-4.0.1.jar。 -
@Palpatim TestClass 是我创建的一个类,目的是将所有与 HttpClient 相关的代码保存在一个地方。所有的 HttpComponents 都被添加到构建路径中。
-
@Reimeus httpcore 和 HttpComponents 项目中的所有 jar 都包含在 BuildPath 中。我使用的是 Eclipse,所以在编译时应该已经发现了任何丢失的 jar,对吧?
-
@Dragos @Reimeus 在说什么,而我要说的是,您的构建环境可能与您的运行环境不同。如果您的部署包不包含
httpcorejar,那么即使编译得很好,您也会收到这些错误。查看 Google 的第一个结果以了解您的错误:stackoverflow.com/questions/9663927/…