前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >坚若磐石的工具类nutz(可能是国产的)

坚若磐石的工具类nutz(可能是国产的)

作者头像
烤红薯
发布2021-12-23 15:05:09
4240
发布2021-12-23 15:05:09
举报
文章被收录于专栏:烤红薯的学习笔记

nutz国产注释工具类。开发者应该也是中国人,有其社区,目前开发人员还在解答疑问。

上pom

代码语言:javascript
复制
<dependency>
    <groupId>org.nutz</groupId>
    <artifactId>nutz</artifactId>
    <version>1.r.68.v20190220</version>
</dependency>

http请求的使用,十分之简洁

代码语言:javascript
复制
import org.junit.Test;
import org.nutz.http.Http;

import java.util.HashMap;
import java.util.Map;

public class NutzTest {


    @Test
    public void test() {
    
        String url = "请求的url地址";
        
         // 请求携带的参数
        Map<String, Object> param = new HashMap<>();
        param.put("param1", 123456);
        
        int timeout = 3000; // 超时时间
        
        // 发送请求你
        String ressult = Http.post(url, param, timeout);
        
        // 打印返回值
        System.out.println("ressult = " + ressult);
    }



}

另源码中文的注释,阅读体验比较友好。截取post相关请求以供参考。

代码语言:javascript
复制
/**
 * 访问一个URL,并设置超时及参数
 * 
 * @param url
 *            需要访问的URL
 * @param params
 *            参数
 * @param timeout
 *            超时设置,单位为毫秒
 * @return http响应
 */
public static String post(String url, Map<String, Object> params, int timeout) {
    return post(url, params, timeout, Sender.Default_Conn_Timeout);
}

public static String post(String url, Map<String, Object> params, int timeout, int connTimeout) {
    return Sender.create(Request.create(url, METHOD.POST, params, null)).setTimeout(timeout).setConnTimeout(connTimeout).send().getContent();
}

/**
 * 访问一个URL,并设置超时及参数
 * 
 * @param url
 *            需要访问的URL
 * @param params
 *            参数
 * @param timeout
 *            超时设置,单位为毫秒
 * @return http响应
 */
public static Response post2(String url, Map<String, Object> params, int timeout) {
    return post2(url, params, timeout, Sender.Default_Conn_Timeout);
}

public static Response post2(String url, Map<String, Object> params, int timeout, int connTimeout) {
    return Sender.create(Request.create(url, METHOD.POST, params, null))
                 .setTimeout(timeout).setConnTimeout(connTimeout)
                 .send();
}

public static Response post3(String url, Object body, Header header, int timeout) {
   return post3(url, body, header, timeout, Sender.Default_Conn_Timeout);
}

public static Response post3(String url, Object body, Header header, int timeout, int connTimeout) {
    Request req = Request.create(url, METHOD.POST).setHeader(header);
    if (body != null) {
        if (body instanceof InputStream) {
            req.setInputStream((InputStream) body);
        } else if (body instanceof byte[]) {
            req.setData((byte[]) body);
        } else {
            req.setData(String.valueOf(body));
        }
    }
    return Sender.create(req).setTimeout(timeout).setConnTimeout(connTimeout).send();
}

xml的解析也十分之清爽,无需在实体类上面另外添加注解

代码语言:javascript
复制
import org.junit.Test;
import org.nutz.http.Http;
import org.nutz.lang.Xmls;
import org.nutz.lang.util.NutMap;

import java.util.HashMap;
import java.util.Map;

public class NutzTest {

    @Test
    public void test2() {
        // 参考值
        String xml = "<?xml version=\"1.0\"?>\n" +
                "<body xmlns:xsd=\"xxx\" xmlns:xsi=\"ccc\">\n" +
                "  <head>\n" +
                "    <ret_code>-1</ret_code>\n" +
                "    <ret_info>查询无结果</ret_info>\n" +
                "  </head>\n" +
                "</body>\n";
        // 解析为map
        NutMap nutMap = Xmls.xmlToMap(xml);
        // 打印结果
        System.out.println("nutMap = " + nutMap);
        
        // 若需转换为相应的实体类,可先将其转换为json再转换为实体类
        //(仅供参考)
    }

}

另附上部分相关源码

代码语言:javascript
复制
/**
 * 将一个下面格式的 XML:
 * 
 * <pre>
 * &lt;xml&gt;
 * &lt;key1&gt;value1&lt;/key1&gt;
 * &lt;key2&gt;value2&lt;/key2&gt;
 * &lt;/xml&gt;
 * </pre>
 * 
 * 转换成一个 Map
 * 
 * @param xml
 *            XML 字符串
 * 
 * @return Map
 */
public static NutMap xmlToMap(String xml) {
    return Xmls.asMap(Xmls.xml(Lang.ins(xml)).getDocumentElement());
}

public static NutMap xmlToMap(InputStream ins) {
    return Xmls.asMap(Xmls.xml(ins).getDocumentElement());
}

public static NutMap xmlToMap(InputStream ins, final boolean lowerFirst, final boolean dupAsList, final List<String> alwaysAsList) {
    return Xmls.asMap(Xmls.xml(ins).getDocumentElement(), lowerFirst, dupAsList, alwaysAsList);
}

/**
 * 将一个 Map 转换成 XML 类似:
 * 
 * <pre>
 * &lt;xml&gt;
 * &lt;key1&gt;value1&lt;/key1&gt;
 * &lt;key2&gt;value2&lt;/key2&gt;
 * &lt;/xml&gt;
 * </pre>
 * 
 * @param map
 *            Map
 * @return XML 字符串
 */
public static String mapToXml(Map<String, Object> map) {
    return mapToXml("xml", map);
}

public static String mapToXml(String root, Map<String, Object> map) {
    StringBuilder sb = new StringBuilder();
    map2Tag(root, map).toXml(sb, 0);
    return sb.toString();
}

另外其还封装了单表操作,sql查询等...若有需要此工具的可以去官网了解一下

Nutz-程序员小伙伴们的另一个选择 - Nutz (nutzam.com)

www.nutzam.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 jackHarbor 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档