java - 如何使用流利的Apache Components

标签 java apache-httpclient-4.x

我正在尝试使用 Apache 组件 (4.3) 的示例构建一个 http POST - http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/fluent.html .不幸的是,我收到一个错误,我无法找到解决方法。

我以前使用过以前的 HttpClient - 所以这是我第一次使用组件。

下面是一段代码:

String address = "http://1.1.1.1/services/postPositions.php";
String response = Request.Post(address)
        .bodyString("Important stuff", ContentType.DEFAULT_TEXT)
        .execute().returnContent().asString();
System.out.println(response);

当我运行该代码时出现异常:

Exception in thread "main" java.lang.IllegalStateException: POST request cannot enclose an entity
    at org.apache.http.client.fluent.Request.body(Request.java:299)
    at org.apache.http.client.fluent.Request.bodyString(Request.java:331)
    at PostJson.main(PostJson.java:143)

我也尝试构建一个表单元素并使用 bodyForm() 方法 - 但我遇到了同样的错误。

最佳答案

我遇到了同样的问题,解决方法是使用 Apache Client 4.3.1,它可以正常工作。

似乎请求已更改:

  • 在 4.3.1 他们使用 public HttpRequestBase
  • 在最新版本中,他们使用 protected 包 InternalHttpRequest

关于java - 如何使用流利的Apache Components,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22095341/

相关文章:

java - !contains() 方法?那可能吗?

java - 执行 HTTP.PUT 的正确方法

ssl - Apache HttpClient 4.2.3 - SSLException : hostname in certificate didn't match

java - 将数据放入请求正文中的所有可能方法

java - 如何引入 Apache HttpClient 查找加载器?

java - 如何知道 Android Studio 中输入的字母是否为大写?

java - Gradle 。如何从 collect{} 打印所有文件

java - 将 BufferedImage 复制到剪贴板

SolrJ HttpSolrServer 在实例化期间抛出 NoHttpResponseException

java - Android KitKat 图像选择不返回任何东西