Apache的HTTP客户端 - 仍然没有从GAE/J可用
问题描述:
希望这个已经解决了与最近宣布的出站套接字API,但事实并非如此 - 这里是试图建立HTTP连接时出现错误:Apache的HTTP客户端 - 仍然没有从GAE/J可用
信息:从官方文档,谷歌状态尚未实现
:
操作失败:setSocketOptions连接到目标主机时陷入I/O异常(java.net.SocketException异常)您不能使用大多数getsockopt/setsockopt调用。
问题是,有谁知道如何解决现在? urlfetch不是一个选项,我想与客户端证书建立SSL连接,urlfetch不支持它。用下面的自定义ClientConnectionManager
不设置任何插座opions
HttpClient client = new DefaultHttpClient(new AppEngineClientConnectionManager());
:
答
如果你只是想HttpClient的到AppEngine上运行,试试这个。
测试与HttpClient的4.2.5和简单HttpGet
AppEngine上1.8.1 - 你可能需要重写/重新配置更多,这取决于你的HttpClient用法:
class AppEngineClientConnectionManager extends BasicClientConnectionManager {
@Override
protected ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg) {
return new DefaultClientConnectionOperator(schreg) {
@Override
protected void prepareSocket(Socket sock, HttpContext context, HttpParams params)
throws IOException {
// Don't set any socket options.
}
};
}
}