data = new ArrayList();data.add(new BasicNameValuePair("usern.._list">
当前位置:   article > 正文

Java(16):使用httpClient的List<NameValuePair>设置GET参数及如何封装_list

list

在做接口自动化测试时,遇到GET方法需要传参,一般如下面例子

  1. httpget.setHeader("User-Agent", "Chrome");
  2. httpget.setHeader("Content-Type", "application/json;charset=UTF-8");
  3. List<NameValuePair> data = new ArrayList<NameValuePair>();
  4. data.add(new BasicNameValuePair("username", "admin"));
  5. data.add(new BasicNameValuePair("password", "123***"));
  6. data.add(new BasicNameValuePair("type", "login"));
  7. UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(data);
  8. httpget.setEntity(formEntity);

这里对List<NameValuePair>设置GET参数进行封装,例子

调用:

  1. public static String doGet(String url,Map<String,String> params,String token) throws Exception{
  2. // 根据参数,创建访问的地址
  3. URIBuilder uriBuilder = new URIBuilder(url);
  4. if (params != null) {
  5. Set<Entry<String, String>> entrySet = params.entrySet();
  6. for (Entry<String, String> entry : entrySet) {
  7. uriBuilder.setParameter(entry.getKey(), entry.getValue());
  8. }
  9. }
  10. }
  1. /**
  2. * Description: 封装请求参数
  3. *
  4. * @param params
  5. * @param httpMethod
  6. * @throws UnsupportedEncodingException
  7. */
  8. public static void packageParam(Map<String, String> params, HttpEntityEnclosingRequestBase httpMethod)
  9. throws UnsupportedEncodingException {
  10. // 封装请求参数
  11. if (params != null) {
  12. List<NameValuePair> nvps = new ArrayList<NameValuePair>();
  13. Set<Entry<String, String>> entrySet = params.entrySet();
  14. for (Entry<String, String> entry : entrySet) {
  15. nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
  16. }
  17. // 设置到请求的http对象中
  18. httpMethod.setEntity(new UrlEncodedFormEntity(nvps, ENCODING));
  19. }
  20. }

这里封装使用的是Map的entrySet遍历。

List<NameValuePair> nvps = new ArrayList<NameValuePair>();
            Set<Entry<String, String>> entrySet = params.entrySet();
            for (Entry<String, String> entry : entrySet) {
                nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
            }

entrySet解释:
entrySet是 java中 键-值 对的集合,Set里面的类型是Map.Entry,一般可以通过map.entrySet()得到。
entrySet实现了Set接口,里面存放的是键值对。一个K对应一个V。
用来遍历map的一种方法。
即通过getKey()得到K,getValue得到V。

参考资料:

Java中Map的 entrySet() 详解以及用法(四种遍历map的方式)

https://blog.csdn.net/wang386476890/article/details/115654635

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/187003
推荐阅读
相关标签