当前位置: 首页 > 知识库问答 >
问题:

UrlEncodedFormEntity在Apache HttpClient 4中做什么?

郝承悦
2023-03-14

如果您希望使用参数执行HTTP Post,并使用“x-www-form-urlencoded”的内容类型发送它,那么在ApacheHTTP客户端3中执行此操作的方法是。。。

    HttpMethod method = new PostMethod(myUrl)

    method.setParams(mp)
    method.addParameter("user_name", username)
    method.addParameter("password", password)

    method.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')

    int responseCode = httpClient.executeMethod(method)

但是ApacheHTTP客户端4引入了UrlEncodedFormEntity对象,因此实现相同功能的新方法是。。。

HttpPost post = new HttpPost(url);

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("user_name", username));
urlParameters.add(new BasicNameValuePair("password", password));;

post.setEntity(new UrlEncodedFormEntity(urlParameters));

HttpResponse response = client.execute(post);

此UrlEncodedFormEntity对象除了将内容类型设置为“x-www-form-urlencoded”之外还有什么用途?

文档说它创建了一个“由url编码对列表组成的实体”,但这不能通过设置内容类型来实现吗?

共有1个答案

逄学潞
2023-03-14

HttpEntity接口是控制如何处理请求/响应主体的顶级接口。在本例中,您使用的是UrlEncodedFormEntity,它知道如何对参数进行编码并以所需格式输出参数。

 类似资料:
  • 问题内容: 好的,我尝试查找或shift的含义,但是此站点对此进行了解释:http : //www.janeg.ca/scjp/oper/shift.html 如果和孩子说话,会是什么解释? 问题答案: 计算机是二进制设备。因此,数字由1和0的序列表示。 移位只是简单地左右移动那些1和0的序列。 因此,操作员要做的就是将这些位向右移一位。 考虑数字101: 在这种情况下,最低有效位被截断了。显然,

  • 问题内容: %在JavaScript中有什么作用? 关于它是什么及其作用的定义将不胜感激。 问题答案: 这是一个 模运算符 。有关JavaScript算术运算符的更多信息,请参见本文档或规范 。 %(模量) 模运算符的用法如下: var1%var2 在前面的语句中,模运算符以第二操作数为模的形式返回第一个操作数,即var1以var2为模,其中var1和var2是变量。模函数是var1除以var2的

  • 问题内容: 在superuser.com上的帖子答案中,我们看到了 在将文件abc和bcd进行发送之前将它们排序。这导致了一个编程问题,更适合于stackoverflow。 这是如何运作的?<()构造到底是什么?它叫什么? 如果(sort abc)是在abc上运行sort并返回输出的合法调用,为什么我们需要? 也就是说,以下两行是等效的 但 是语法错误。请提示我! 问题答案: 这称为过程替换。 是

  • 问题内容: 在Java中,我刚刚发现以下代码是合法的: 仅供参考,接收方只是具有以下签名的帮助程序类: 我从未见过这种记法。这是如何运作的?有什么方法可以更常规地进行编码吗? 问题答案: 这是从包含的类主体外部实例化非静态内部类的方法,如Oracle docs中所述 。 每个内部类实例都与其包含类的实例相关联。当你从一个内部类 中 包含它的类,它使用的默认容器的实例: 但是,如果要在Foo外部创建

  • 问题内容: 用 Java 做什么?我阅读了文档,但仍然无法确定。 医生说: 返回可以从此输入流读取(或跳过)的字节数,而不会被该输入流的方法的下一个调用者阻塞。下一个调用者可能是同一线程或另一个线程。 类InputStream的可用方法始终返回0。 封锁 是什么意思?这仅表示同步通话吗? 最重要的是,该方法的目的是什么? 问题答案: 这里的阻塞与线程或同步无关。相反,它涉及到阻塞的IO(见本获取更

  • 问题内容: 返回类型-方法返回的值的数据类型;如果该方法未返回值,则返回void。 http://download.oracle.com/javase/tutorial/java/javaOO/methods.html 那好吧..这是我的问题: http://download.oracle.com/javase/tutorial/java/javaOO/enum.html 上面的代码没有无效就无法