1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package tests.support; 19 20 import java.io.IOException; 21 import java.io.InputStream; 22 import java.io.OutputStream; 23 import java.net.HttpURLConnection; 24 import java.net.URL; 25 import java.net.URLConnection; 26 27 /** 28 * This class implements the Support_HttpConnector interface using java.net 29 * URL's 30 */ 31 public class Support_URLConnector implements Support_HttpConnector { 32 private URLConnection instance; 33 34 private boolean streamOpen = false; 35 36 /** 37 * @see com.ibm.support.Support_HttpConnector#open(String) 38 */ 39 public void open(String address) throws IOException { 40 instance = new URL(address).openConnection(); 41 } 42 43 public void close() throws IOException { 44 if (!streamOpen) { 45 ((HttpURLConnection) instance).disconnect(); 46 } 47 } 48 49 /** 50 * @see com.ibm.support.Support_HttpConnector#getInputStream() 51 */ 52 public InputStream getInputStream() throws IOException { 53 if (instance == null) { 54 return null; 55 } 56 streamOpen = true; 57 return instance.getInputStream(); 58 } 59 60 public OutputStream getOutputStream() throws IOException { 61 if (instance == null) { 62 return null; 63 } 64 instance.setDoOutput(true); 65 ((HttpURLConnection) instance).setRequestMethod("POST"); 66 streamOpen = true; 67 return instance.getOutputStream(); 68 } 69 70 public boolean isChunkedOnFlush() { 71 return false; 72 } 73 74 public void setRequestProperty(String key, String value) throws IOException { 75 instance.setRequestProperty(key, value); 76 } 77 78 public String getHeaderField(int index) throws IOException { 79 return ((HttpURLConnection) instance).getHeaderField(index); 80 } 81 82 public String getHeaderFieldKey(int index) throws IOException { 83 return ((HttpURLConnection) instance).getHeaderFieldKey(index); 84 } 85 } 86