当前位置: 首页 > 面试题库 >

如何将查询参数添加到GetMethod(使用Java Commons-httpclient)?

陶飞鸿
2023-03-14
问题内容

使用Apache的commons-httpclient for
Java,向GetMethod实例添加查询参数的最佳方法是什么?如果我使用的是PostMethod,则非常简单:

PostMethod method = new PostMethod();
method.addParameter("key", "value");

但是,GetMethod没有“ addParameter”方法。我发现这可行:

GetMethod method = new GetMethod("http://www.example.com/page");
method.setQueryString(new NameValuePair[] {
    new NameValuePair("key", "value")
});

但是,我见过的大多数示例都将参数直接硬编码到URL中,例如:

GetMethod method = new GetMethod("http://www.example.com/page?key=value");

或硬编码查询字符串,例如:

GetMethod method = new GetMethod("http://www.example.com/page");
method.setQueryString("?key=value");

这些模式之一是首选吗?以及为什么PostMethod和GetMethod之间的API差异?还有哪些其他打算用于的HttpMethodParams方法呢?


问题答案:

post方法具有post参数,但get方法没有。

查询参数嵌入URL中。当前版本的HttpClient在构造函数中接受字符串。如果要在上方添加键值对,则可以使用:

String url = "http://www.example.com/page?key=value";
GetMethod method = new GetMethod(url);

在Apache Jakarta
Commons页面
上可以找到一个很好的入门教程。

更新 :如评论中所建议,NameValuePair有效。

GetMethod method = new GetMethod("example.com/page"); 
method.setQueryString(new NameValuePair[] { 
    new NameValuePair("key", "value") 
});


 类似资料:
  • 问题内容: 在pgadmin3中,我想使用参数化查询(为了进行更快的调试,只需从我的php文件中复制并粘贴查询)。但是我还没有找到一个选项添加的价值观,…参数。是否有可能? 这是我正在循环中建立的查询,遵循从这里进行NULL测试的建议: 请注意,手动替换所有参数很繁琐,容易出错,并且可能(我希望)是不必要的。 提前致谢。 问题答案: 我只知道两种方式。 首先是要使用(PostgreSQL手册后的示

  • 问题内容: 我想将键值对作为查询参数附加到现有URL。虽然我可以通过检查URL是否存在查询部分还是片段部分并通过跳过一堆if子句来执行追加来做到这一点,但是我想知道是否有通过Apache进行清理的干净方法公共图书馆或类似的东西。 将是 将是 将是 将是 我之前已经运行过多次这种情况,并且我希望做到这一点而不会以任何方式破坏URL。 问题答案: 这可以通过使用java.net.URI类使用现有实例中

  • 问题内容: 我有桌子上的产品 产品 我需要按任何值更新“数量”,例如“ 5 + 3” 需要如下输出 我该如何写查询? 问题答案:

  • 问题内容: 我正在使用Commons HttpClient对Spring servlet进行http调用。我需要在查询字符串中添加一些参数。因此,我执行以下操作: 但是,当我尝试使用读取servlet中的参数时 它返回null。实际上parameterMap是完全空的。当我在创建HttpGet请求之前将参数手动添加到url时,该参数在servlet中可用。当我使用附加了queryString的UR

  • 我有一个使用. NET 6 Web API的应用程序。一旦用户登录到应用程序,关于该用户的基于小上下文的信息被附加到查询参数。 API中AuthPolicy的一部分是,当调用endpoint时,这些查询参数必须存在,即使该endpoint没有使用它们。 例如,此 终结点具有在请求正文中传递的实际输入,但 AuthPolicy 要求查询参数存在,即使未使用它也是如此。 有效EX: 无效的EX: 有没

  • 我的任务是用hibernate的数据值填充prime faces数据表。我们可以通过这个查询获取表中的所有记录 将从表雇员中获取所有记录,雇员字段有两个字段名称,以及将其转换为列表的Hibernate查询 列表=查询。list();我想将其转换为数组列表,其中包含两个字段name,age和hibernate中的所有对象 然后用 有人能举例说明吗