HTTP发送文件 工具类

package com.joyveb.state.utils;

import java.io.File;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.FileEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * HTTP CLIENT 工具类
 *
 * @author machijie
 *
 */
public class HTTPClientUtil {

    private static Logger log = LoggerFactory.getLogger(HTTPClientUtil.class);

    /**
     * 上传文件
     *
     * @param url
     *            http地址
     * @param fileName
     *            文件路径名称
     * @throws Exception
     */
    public static void postFile(String url, String fileName) throws Exception {
        log.info("Ready Post File:[{}] Url:[{}]", fileName, url);
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        File file = new File(fileName);
        if (file.exists() == false) {
            throw new Exception("File:[" + fileName + "]存在");
        }
        FileEntity fileEntity = new FileEntity(new File(fileName), "UTF-8");
        httppost.addHeader("Content-Type", "text/xml");
        httppost.setEntity(fileEntity);
        try {
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            log.info("Post File:[{}] Url:[{}] Return StatusCode:[{}]",
                    new String[] { fileName, url,
                            response.getStatusLine().toString() });
            if (entity != null) {
                log.info("Response content length: "
                        + entity.getContentLength());
            }
            EntityUtils.consume(entity);
        } catch (Exception e) {
            log.error("Post File:[" + fileName + "] Url:[" + url + "]", e);
        } finally {
            httpclient.getConnectionManager().shutdown();
        }
    }

    public static void main(String[] args) throws Exception {
        HTTPClientUtil
                .postFile(
                        "http://192.168.3.205:8080/genlotmediator/tjaccepter?gameid=4&periodnum=123456",
                        "d:/test1.txt");
    }

}

你可能感兴趣的:(http)