1997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
2997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yupackage org.ksoap2.transport;
3997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
4997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yuimport java.io.IOException;
5997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yuimport java.net.MalformedURLException;
6997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yuimport java.net.URL;
7997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
8997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu/**
9997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * HttpsTransportSE is a simple transport for https protocal based connections. It creates a #HttpsServiceConnectionSE
10997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * with the provided parameters.
11997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu *
12997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu * @author Manfred Moser <manfred@simpligility.com>
13997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu */
14997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yupublic class HttpsTransportSE extends HttpTransportSE {
15997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
16997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    static final String PROTOCOL = "https";
17997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
18997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    private ServiceConnection serviceConnection = null;
19997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    private final String host;
20997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    private final int port;
21997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    private final String file;
22997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    private final int timeout;
23997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
24997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    public HttpsTransportSE(String host, int port, String file, int timeout) {
25997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        super(HttpsTransportSE.PROTOCOL + "://" + host + ":" + port + file);
26997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        System.out.println("Establistion connection to: " + HttpsTransportSE.PROTOCOL + "://"
27997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu                + host + ":" + port + file);
28997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        this.host = host;
29997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        this.port = port;
30997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        this.file = file;
31997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        this.timeout = timeout;
32997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    }
33997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
34997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    /**
35997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu     * Returns the HttpsServiceConnectionSE and creates it if necessary
36997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu     * @see org.ksoap2.transport.HttpsTransportSE#getServiceConnection()
37997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu     */
38997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    public ServiceConnection getServiceConnection() throws IOException
39997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    {
40997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        if (serviceConnection == null) {
41997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            serviceConnection = new HttpsServiceConnectionSE(host, port, file, timeout);
42997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        }
43997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        return serviceConnection;
44997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    }
45997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
46997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    public String getHost() {
47997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
48997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        String retVal = null;
49997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
50997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        try {
51997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            retVal = new URL(url).getHost();
52997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        } catch (MalformedURLException e) {
53997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            e.printStackTrace();
54997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        }
55997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
56997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        return retVal;
57997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    }
58997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
59997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    public int getPort() {
60997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
61997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        int retVal = -1;
62997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
63997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        try {
64997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            retVal = new URL(url).getPort();
65997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        } catch (MalformedURLException e) {
66997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            e.printStackTrace();
67997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        }
68997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
69997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        return retVal;
70997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    }
71997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
72997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    public String getPath() {
73997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
74997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        String retVal = null;
75997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
76997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        try {
77997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            retVal = new URL(url).getPath();
78997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        } catch (MalformedURLException e) {
79997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu            e.printStackTrace();
80997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        }
81997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu
82997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu        return retVal;
83997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu    }
84997171ed3fdf8baf96d8fdf9dd3201a459327d89Ryan Yu}
85