Skip to content

Hprose 客户端的特殊设置

小马哥 edited this page Jun 28, 2016 · 3 revisions

Hprose 的 HTTP 客户端

disableGlobalCookie 静态属性

public static void setDisableGlobalCookie(boolean value);
public static boolean isDisableGlobalCookie();

表示是否禁用全局 Cookie,默认是否。即默认情况下,在同一个应用程序中创建的所有 HproseHttpClient 共享同一个全局 Cookie 管理器。

当把该属性设置为 true 时,每个 HproseHttpClient 将各自使用自己独立的 Cookie 管理器,即不同的 HproseHttpClient 之间不再共享 Cookie

setHeader 方法

public void setHeader(String name, String value);

这个方法专门用于设置 HTTP 的头信息。

getHeader 方法

public String getHeader(String name);

获取已设置 HTTP 的头信息。

keepAlive 属性

public boolean isKeepAlive();
public void setKeepAlive(boolean keepAlive);

用于设置 HTTP 连接的 keepAlive 状态。默认值为 true。通常在进行连续多次调用时,keepAlive 状态可以让调用更快,因为无需重新建立连接。但是当服务器不支持 keepAlive 时,应将该属性的值改为 false,否则在调用中会发生错误。

keepAliveTimeout 属性

public int getKeepAliveTimeout();
public void setKeepAliveTimeout(int keepAliveTimeout);

用于设置 keepAlive 连接的超时时间,单位是秒(注意:不是毫秒)。默认值为 300 秒。

proxyHost 属性

public String getProxyHost();
public void setProxyHost(String proxyHost);

用于设置代理主机地址。

proxyPort 属性

public int getProxyPort();
public void setProxyPort(int proxyPort);

用于设置代理主机端口。

proxyUser 属性

public String getProxyUser();
public void setProxyUser(String proxyUser);

用于设置代理主机用户名。

proxyPass 属性

public String getProxyPass();
public void setProxyPass(String proxyPass);

用于设置代理主机密码。

hostnameVerifier 属性

public HostnameVerifier getHostnameVerifier();
public void setHostnameVerifier(HostnameVerifier hv);

用于设置主机名验证。

SSLSocketFactory 属性

public SSLSocketFactory getSSLSocketFactory();
public void setSSLSocketFactory(SSLSocketFactory sslsf);

用于设置 SSL 套接字工厂。

Hprose 的 TCP 客户端

noDelay 属性

public final boolean isNoDelay();
public final void setNoDelay(boolean noDelay);

用于设置在 TCP 上是否禁用 Nagle 算法。默认为 false

fullDuplex 属性

public final boolean isFullDuplex();
public final void setFullDuplex(boolean fullDuplex);

用于设置是否启用全双工通讯方式。在全双工通讯方式下,客户端发出调用请求后,不需要等待返回响应结果,就可以在同一个连接上发送下一个调用请求,而且在发送请求的过程中,可以同时接收服务器端返回的响应数据。也就是说,在该模式下,客户端和服务器之间的连接的利用率将会更高。尤其是在服务器返回响应较慢,或者服务器和客户端之间有推送请求时,客户端和服务器端只需要一个连接就足够了。而在半双工通讯模式下,则需要多个连接才可以。

不过该属性默认值为 false,原因是 Hprose 旧版本的 TCP 服务器仅支持半双工通讯方式。你只有确认服务器端支持全双工通讯方式的情况下,才可以开启该选项,否则,在通讯中会得到异常信息。

maxPoolSize 属性

public final int getMaxPoolSize();
public final void setMaxPoolSize(int maxPoolSize);

用于设置连接池中的最大连接数。默认值为 2。当开启全双工通讯方式后,可以将该值设置为 1。该值必须大于 0。

idleTimeout 属性

public final int getIdleTimeout();
public final void setIdleTimeout(int idleTimeout);

用于设置连接池中的连接的空闲超时时间。默认值为 30000,单位是毫秒(ms)。该值不能小于 0。

当连接池中的连接超过这个时间还没有被使用的情况下,将会自动关闭。

readTimeout 属性

public final int getReadTimeout();
public final void setReadTimeout(int readTimeout);

用于设置读取操作的超时时间。默认值为 30000,单位是毫秒(ms)。该值必须大于 0。

当读取操作超过这个时间还没有完成,将会抛出超时异常。

writeTimeout 属性

public final int getWriteTimeout();
public final void setWriteTimeout(int writeTimeout);

用于设置写入操作的超时时间。默认值为 30000,单位是毫秒(ms)。该值必须大于 0。

当写入操作超过这个时间还没有完成,将会抛出超时异常。

connectTimeout 属性

public final int getConnectTimeout();
public final void setConnectTimeout(int connectTimeout);

用于设置建立连接的超时时间。默认值为 30000,单位是毫秒(ms)。该值必须大于 0。

当建立连接超过这个时间还没有完成,将会抛出超时异常。

keepAlive 属性

public final boolean isKeepAlive();
public final void setKeepAlive(boolean keepAlive);

表示是否启用 TCP 内建的心跳检测机制。默认值为 true