希望用最近公布的出站套接字API解决这个问题,但事实并非如此 - 尝试建立HTTP连接时出现错误:
来自Google官方文档的说明:INFO:连接到目标主机时捕获到I / O异常(java.net.SocketException):操作失败:setSocketOptions:尚未实现
你不能使用大多数getsockopt / setsockopt调用。
问题是,有谁知道现在如何解决? urlfetch不是一个选项,我想与客户端证书建立SSL连接,urlfetch不支持它。
答案 0 :(得分:0)
如果你只想让HttpClient在AppEngine上运行,试试这个:
HttpClient client = new DefaultHttpClient(new AppEngineClientConnectionManager());
使用以下自定义ClientConnectionManager
,但未设置任何套接字操作。
使用HttpClient 4.2.5和AppEngine 1.8.1上的简单HttpGet
进行测试 - 您可能需要覆盖/重新配置更多,具体取决于您对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.
}
};
}
}