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/"/>&lt;!&ndash;{type}{server}{rootUrl}&ndash;&gt;
   <property name="mapping" value="port"/>&lt;!&ndash;代理port 如存在&ndash;&gt;
   <property name="method" value="get"/>&lt;!&ndash;方法&ndash;&gt;
   <property name="charset" value="#{KCMS_ENCODING}"/>&lt;!&ndash;字符集&ndash;&gt;-->
</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>

results matching ""

    No results matching ""