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. 
     } 
    }; 
    } 
}