注意HttpURLConnection引用必須是sun.net.www.protocol.http.HttpURLConnection這個類而不是org.apache.commons.httpclient.util.HttpURLConnection
或者java.net.HttpURLConnection
廢話不說,直接上代碼
import java.net.URL;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
import sun.net.www.protocol.http.HttpURLConnection;
URL url = new URL(http://xxxx?wsdl);
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
httpConnection.setReadTimeout(1000);//設定http連接配接的讀逾時,機關是毫秒
httpConnection.connect();
client = new Client(httpConnection.getInputStream(), null);
client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, String.valueOf(1000));//設定發送的逾時限制,機關是毫秒;
client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true");
client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true");
Object[] result = client.invoke("某個方法",new Object[]{參數,....});