8000 GitHub - Viyond/forest-1 at 1.1.x
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from dromara/forest

A high-level and lightweight HTTP client framework for Java. it makes sending HTTP requests in Java easier.

License

Notifications You must be signed in to change notification settings

Viyond/forest-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forest - HTTP客户端访问框架

Build Status license Maven Central

项目介绍:

Forest是一个高层的、极简的HTTP调用API框架。
相比于直接使用Httpclient您不再用写一大堆重复的代码了,而是像调用本地方法一样去发送HTTP请求。

项目特点:

  • 以Httpclient和OkHttp为后端框架
  • 通过调用本地方法的方式去发送Http请求
  • 支持灵活的模板表达式
  • 支持过滤器来过滤传入的数据
  • 基于注解、配置化的方式定义Http请求
  • 支持Spring集成:除了基本信息配置,它能自动扫描、注入到你自己的代码中
  • JSON字符串到Java对象的自动化解析
  • XML文本到Java对象的自动化解析
  • JSON、XML或其他类型转换器可以随意扩展和替换
  • 可以通过OnSuccess和OnError接口参数实现请求结果的回调
  • 配置简单,一般只需要@Request一个注解就能完成绝大多数请求的定义
  • 实现了业务逻辑与Http协议之间的解耦

项目状态:

  • 主流程已完成
  • 已支持所有请求方法:GET, HEAD, OPTIONS, TRACE, POST, DELETE, PUT, PATCH
  • 已支持的JSON转换框架: Fastjson, Jackson, Gson
  • 已支持Spring集成
  • 已支持JAXB形式的XML转换
  • 已支持JSON解析
  • 支持Commons-Log, SLF4j, Log4J等日志框架
  • 1.0.0版本已布中央仓库
  • 异步请求方式还不够完善

Quick Start

Maven依赖

因为forest是一个只做前端api的框架,所以需要添加一个后端http框架的依赖,这里我们使用OkHttp3(除此之外也可以用HttpClient)
同时需要加上JSON解析包的依赖。

<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.3.0</version>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

然后添加forest核心包依赖

<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>forest-core</artifactId>
    <version>1.1.2</version>
</dependency>

如果您使用了spring

<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>forest-spring</artifactId>
    <version>1.1.2</version>
</dependency>

举一个栗子:访问百度短链接REST接口

创建一个Interface作为远程调用接口

import com.dtflys.forest.annotation.Request;
import com.dtflys.forest.annotation.DataParam;

public interface MyClient {

    /**
     * 百度短链接API
     * @param url
     * @return
     */
    @Request(
        url = "http://dwz.cn/create.php",
        type = "post",
        dataType = "json"
    )
    Map getShortUrl(@DataParam("url") String url);
}

调用远程接口

ForestConfiguration configuration = ForestConfiguration.configuration();
MyClient myClient = configuration.createInstance(MyClient.class);
Map result = myClient.getShortUrl("https://gitee.com/dt_flys/forest");
System.out.println(result);

如果写在main方法中是介样子滴

public class TestForest {
    
    private final static ForestConfiguration configuration = ForestConfiguration.configuration();
    private final static MyClient myClient = configuration.createInstance(MyClient.class);
    
    public static void main(String[] args) {
        Map result = myClient.getShortUrl("https://gitee.com/dt_flys/forest");
        System.out.println(result);
    }
}

或者在Spring中调用

@Autowired
MyClient myClient;

...

Map result = myClient.getShortUrl("https://gitee.com/dt_flys/forest");

如何在Spring中配置请参见在Spring中使用

详细文档:

技术支持:

QQ群:930773917

项目协议

The MIT License (MIT)

Copyright (c) 2016 Jun Gong

About

A high-level and lightweight HTTP client framework for Java. it makes sending HTTP requests in Java easier.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.8%
  • HTML 0.2%
0