最近做一个消息发送工具,采用jersery客户端访问restful接口发送消息,消息发送代码记录一下,希望对大家有帮助:
1、http访问
Client c = Client.create();
WebResource r=c.resource(restfulSendUrl);
ClientResponse response = r.header("Content-Type", restfulMessageHead).post(ClientResponse.class,message);
log.info("返回:"+response.getEntity(String.class));
2、https访问
public static void sendHttpsMessage() throws Exception{
HostnameVerifier hv = getHostnameVerifier();
ClientConfig config = new DefaultClientConfig();
SSLContext ctx = getSslContext();
config.getProperties().put( HTTPSProperties.PROPERTY_HTTPS_PROPERTIES,
new HTTPSProperties( hv, ctx ) );
Client jerseyClient = Client.create( config );
WebResource wr = jerseyClient.resource( "https://192.168.71.130:9443/loginserver/rest/client/login" );
ClientResponse cr = wr.header("Content-Type", "application/xml").post(ClientResponse.class,"123");
String entity = cr.getEntity( String.class );
System.out.println(entity);
cr.close();
}
private static HostnameVerifier getHostnameVerifier() {
HostnameVerifier hv = new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
};
return hv;
}
private static SSLContext getSslContext() throws Exception {
SSLContext sslContext = SSLContext.getInstance( "SSL" );
sslContext.init(null, new TrustManager[] {
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
public void checkClientTrusted( X509Certificate[] certs, String authType ) {}
public void checkServerTrusted( X509Certificate[] certs, String authType ) {}
}
}, new SecureRandom()
);
return sslContext;
}