HttpConnection
HttpConnection主要是建立Http连接,通过Http请求的方式访问接口资源。
连接配置
- HttpConnection插件所在位置:lib==>be-esb-plugin-http-2.0.jar==>com==>brilliance==>eibs==>core==>service==>instance==>impl==>JdbcConnection
- 该类继承AbsConnection连接插件共同父类
- 连接插件需要配置在commons.xml文件的connections中
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
connectionTimeout | 连接超时时间,单位ms | long | 3000 |
soTimeout | 请求超时时间,单位ms | long | 3000 |
defaultMaxConnectionsPerHost | 定义每台主机允许的最大连接数,默认为2 | int | 200 |
MaxTotalConnections | httpConnectionManager管理的最大连接数 | int | 1800 |
url | Http 访问的URL | String | http://localhost:8080/activiti-explorer/ |
method | Http 访问模式:post和get(post请求需要设置传递参数) | String | post |
配置实例
- commons.xml中实际连接配置
<connection class="HttpConnection" id="httpConnection"/>
- 实际使用配置
<!--get方式-->
<connection ref="httpConnection" type="out" times="3">
<!-- 连接超时时间 -->
<property name="connectionTimeout" value="3000" />
<!-- 请求超时 -->
<property name="soTimeout" value="3000" />
<!-- 定义每台主机允许的最大连接数,默认为2 -->
<property name="defaultMaxConnectionsPerHost" value="200" />
<!-- httpConnectionManager管理的最大连接数 -->
<property name="MaxTotalConnections" value="1800" />
<!-- Http 访问的URL -->
<property name="url" value="http://localhost:8080/activiti-explorer/" />
<!-- Http 访问模式:post和get -->
<property name="method" value="get" />
</connection>
<!--post方式-->
<connection ref="httpConnection" type="out" times="3">
<!-- 连接超时时间 -->
<property name="connectionTimeout" value="3000" />
<!-- 请求超时 -->
<property name="soTimeout" value="3000" />
<!-- 定义每台主机允许的最大连接数,默认为2 -->
<property name="defaultMaxConnectionsPerHost" value="200" />
<!-- httpConnectionManager管理的最大连接数 -->
<property name="MaxTotalConnections" value="1800" />
<!-- Http 访问的URL -->
<property name="url" value="http://localhost:8080/activiti-explorer/" />
<!-- Http 访问模式:post和get -->
<property name="method" value="post">
<argument description="id" value="test"/>
<argument description="username" value="kitty"/>
</property>
</connection>
配置优化
- 在后续使用HttpConnection连接时,进行了进一步的优化,重新编写了HttpConnectionBetter,采用httpclient4
- commons.xml中实际连接配置
<!--定义一个httpConnection 采用httpclient4-->
<connection class="HttpConnectionBetter" id="httpConnectionBetter">
<property name="type" value="http"/> <!--http-->
<property name="proxyServer" value="false"/><!--代理server-->
<property name="proxyHost" value=""/><!--代理host 如存在-->
<property name="proxyPort" value=""/><!--代理port 如存在-->
<property name="httpRetry" value="1"/><!--基于httpClient的内部重试次数-->
<property name="connect_timeout" value="1000"/><!--http请求连接超时-->
<property name="read_timeout" value="60000"/><!--读超时-->
<!--如下根据引用实现二次配置,必须!-->
<!--<property name="server" value="localhost:8081"/>
<property name="rootUrl" value="/KCMS/certreq/"/><!–{type}{server}{rootUrl}–>
<property name="mapping" value="port"/><!–代理port 如存在–>
<property name="method" value="get"/><!–方法–>
<property name="charset" value="#{KCMS_ENCODING}"/><!–字符集–>-->
</connection>
- 实际使用配置
<!-- http客户端二次配置连接参数 -->
<connection ref="httpConnectionBetter">
<property name="server" value="127.0.0.1:10014"/><!-- 指定连接ip地址 -->
<property name="rootUrl" value="/server"/><!-- 指定连接路径 -->
<property name="mapping" value="/getpty"/><!-- 代理port -->
<property name="charset" value="UTF-8"/><!-- 指定编码字符集 -->
<property name="method" value="post"/><!-- Http 访问模式:post和get -->
</connection>