Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. The ASF licenses this file to You * under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. For additional information regarding * copyright in this work, please see the NOTICE file in the top level * directory of this distribution. */ package org.apache.abdera.protocol.client.util; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.activation.DataHandler; import javax.activation.DataSource; import org.apache.commons.httpclient.methods.RequestEntity; public class DataSourceRequestEntity implements RequestEntity { private final DataSource dataSource; public DataSourceRequestEntity(DataHandler dataHandler) { this(dataHandler.getDataSource()); } public DataSourceRequestEntity(DataSource dataSource) { this.dataSource = dataSource; } public long getContentLength() { return -1; } public String getContentType() { return dataSource.getContentType(); } public boolean isRepeatable() { return true; } public void writeRequest(OutputStream out) throws IOException { InputStream in = dataSource.getInputStream(); byte[] buf = new byte[1024]; int n = -1; while ((n = in.read(buf, 0, 1024)) != -1) { out.write(buf, 0, n); out.flush(); } } }