Java访问WebService设置访问用户名、密码、超时时间(导入wsdl方式)

public static void main(String[] args) {
	MobileCodeWS service = new MobileCodeWS();
	MobileCodeWSSoap port = service.getMobileCodeWSSoap();
	((BindingProvider)port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY,"user");
	((BindingProvider)port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY,"123456");
	
	long timeout = 3*60*1000;
	//设置连接超时时间
	((BindingProvider) port).getRequestContext().put("javax.xml.ws.client.connectionTimeout", timeout);
	//设置请求超时时间  
	((BindingProvider) port).getRequestContext().put("javax.xml.ws.client.receiveTimeout", timeout);
	
	((BindingProvider) port).getRequestContext().put("com.sun.xml.ws.connect.timeout", timeout);
	((BindingProvider) port).getRequestContext().put("com.sun.xml.ws.request.timeout", timeout);
	
	((BindingProvider) port).getRequestContext().put("com.sun.xml.internal.ws.connection.timeout", timeout);
	((BindingProvider) port).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", timeout);
	
	((BindingProvider) service).getRequestContext().put("sun.net.client.defaultConnectTimeout", timeout);  
	((BindingProvider) service).getRequestContext().put("sun.net.client.defaultReadTimeout", timeout); 
	
	String body = port.getMobileCodeInfo("15715700000",null);
	System.out.println(body);
}

以上四种设置超时时间的方式,自行选择测试。

你可能感兴趣的:(Java)