Class HttpUtils

java.lang.Object
com.ptc.windchill.ws.HttpUtils

public class HttpUtils extends Object
Utility class that can be used to upload or download content from the Windchill Web Services API.

Example Download

 // get an instance of ContentHandle from the GetDownloadHandles Windchill Web Services method.
 ContentHandle handle = ...
 HttpUtils utils = new HttpUtils();
 String username, password;
 username = password = null;
 for (;;) {
   try {
     if ( username != null ) utils.setUsername ( username );
     if ( password != null ) utils.setPassword ( password );
     InputStream is = utils.download ( handle );
     // read the data from is
     break;
   } catch ( IOException ioe ) {
     if ( utils.getRc() != HttpUtils.HTTP_UNAUTHORIZED )
       throw ioe;
     else {
       // prompt the user for credentials, set the username/password variables and try again.
       // the getHost()/getRealm() methods can be used to build a cache to avoid subsequent unauthenticated requests.
     }
   }
 }
 

Example Upload

 // get an instance of ContentHandle from the GetUploadHandles Windchill Web Services method.
 ContentHandle handle = ...
 File f = ...
 HttpUtils utils = new HttpUtils();
 String username, password;
 username = password = null;
 for (;;) {
   try {
     if ( username != null ) utils.setUsername ( username );
     if ( password != null ) utils.setPassword ( password );
     utils.upload ( handle, f ).close();
     // ignore response from server as long as HTTP_OK
     break;
   } catch ( IOException ioe ) {
     if ( utils.getRc() != HttpUtils.HTTP_UNAUTHORIZED )
       throw ioe;
     else {
       // prompt the user for credentials, set the username/password variables and try again.
       // the getHost()/getRealm() methods can be used to build a cache to avoid subsequent unauthenticated requests.
     }
   }
 }
 


Supported API: true

Extendable: false
  • Constructor Details

    • HttpUtils

      public HttpUtils()
      Creates an HttpUtils object. The object created will issue unauthenticated requests unless the setUsername(String)/setPassword(String) methods are called.

      Supported API: true
      See Also:
    • HttpUtils

      public HttpUtils(String username, String password)
      Creates an HttpUtils object. The object created will issue authenticated requests.

      Supported API: true
      Parameters:
      username - The username.
      password - The password.
  • Method Details

    • setUsername

      public void setUsername(String username)
      Sets the username that will be sent with requests. Only basic authentication is supported.

      Supported API: true
      Parameters:
      username - The username.
      See Also:
    • getUsername

      public String getUsername()
      Gets the username that will be sent with requests.

      Supported API: true
      Returns:
      The username.
    • setPassword

      public void setPassword(String password)
      Sets the password that will be sent with requests. Only basic authentication is supported.

      Supported API: true
      Parameters:
      password - The password.
      See Also:
    • getPassword

      public String getPassword()
      Gets the password that will be sent with requests.

      Supported API: true
      Returns:
      The password.
    • getRc

      public int getRc()
      Gets the response code issued by the web server in response to a request.

      Supported API: true
      Returns:
      The response code.
      Throws:
      IllegalStateException - If the call is not following a call to upload or download where the server was contacted.
      See Also:
    • getContentLength

      public int getContentLength()
      Gets the content length of data the server responded with. Can only be called following a call to download and prior to invoking another download/upload method.

      Supported API: true
      Returns:
      The content length.
      Throws:
      IllegalStateException - If call is not subsequent to a call to download.
    • getHost

      public String getHost()
      Gets the host that upload or download was last performed to. Can only be called following a call to upload or download.

      Supported API: true
      Returns:
      The host the ContentHandle referred the upload or download request to.
      Throws:
      IllegalStateException - If call is not following upload or download.
      See Also:
    • getRealm

      public String getRealm() throws IOException
      Gets the realm. Can be called following an unauthorized response from the server (getRc() == HTTP_UNAUTHORIZED). Only Basic authentication is supported. Can only be called following a call to upload or download and following an unauthorized server response.

      Supported API: true
      Returns:
      The realm.
      Throws:
      IllegalStateException - If call is not following upload or download.
      IOException - If the response is unexpected or there is an issue with the WWW-Authenticate header.
      See Also:
    • download

      public InputStream download(ContentHandle handle) throws IOException
      Downloads data from a ContentHandle.

      Supported API: true
      Parameters:
      handle - The ContentHandle.
      Throws:
      IOException - If an error occurs.
      See Also:
    • upload

      public InputStream upload(ContentHandle handle, javax.activation.DataSource data) throws IOException
      Uploads data from a DataSource to a ContentHandle.

      Supported API: true
      Parameters:
      handle - The ContentHandle.
      data - The DataSource object.
      Returns:
      An InputStream that can be used to read the response from the web server,
      Throws:
      IOException - If an error occurs.
      See Also:
    • upload

      public InputStream upload(ContentHandle handle, File file) throws IOException
      Uploads data from a File to a ContentHandle.

      Supported API: true
      Parameters:
      handle - The ContentHandle.
      file - The File object.
      Returns:
      An InputStream that can be used to read the response from the web server,
      Throws:
      IOException - If an error occurs.
      See Also:
    • upload

      public InputStream upload(ContentHandle handle, URL url) throws IOException
      Uploads data from a URL to a ContentHandle.

      Supported API: true
      Parameters:
      handle - The ContentHandle.
      url - The URL object.
      Returns:
      An InputStream that can be used to read the response from the web server,
      Throws:
      IOException - If an error occurs.
      See Also: