`
guoyulong005
  • 浏览: 30324 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

httpclent post get 请求 转发文件流

 
阅读更多
import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Map; 
import java.util.Set; 
 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.ParseException; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.protocol.HTTP; 
import org.apache.http.util.EntityUtils;

import com.hsun.HLog;

public class HttpPostGetRequest {

public static String post(String url, Map<String, String> params) { 
        DefaultHttpClient httpclient = new DefaultHttpClient(); 
        String body = null; 
         
        HLog.m_messagelog.debug("create httppost:" + url); 
        HttpPost post = postForm(url, params); 
         
        body = invoke(httpclient, post); 
         
        httpclient.getConnectionManager().shutdown(); 
         
        return body; 
    } 
     
    public static String get(String url) { 
        DefaultHttpClient httpclient = new DefaultHttpClient(); 
        String body = null; 
         
        HLog.m_messagelog.debug("create httppost:" + url); 
        HttpGet get = new HttpGet(url); 
        body = invoke(httpclient, get); 
         
        httpclient.getConnectionManager().shutdown(); 
         
        return body; 
    } 
         
     
    private static String invoke(DefaultHttpClient httpclient, 
            HttpUriRequest httpost) { 
         
        HttpResponse response = sendRequest(httpclient, httpost); 
        String body = paseResponse(response); 
         
        return body; 
    } 
 
    private static String paseResponse(HttpResponse response) { 
    HLog.m_messagelog.debug("get response from http server.."); 
        HttpEntity entity = response.getEntity(); 
         
        HLog.m_messagelog.debug("response status: " + response.getStatusLine()); 
        String charset = EntityUtils.getContentCharSet(entity); 
        HLog.m_messagelog.debug(charset); 
         
        String body = null; 
        try { 
            body = EntityUtils.toString(entity, HTTP.UTF_8); 
            HLog.m_messagelog.debug(body); 
        } catch (ParseException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
         
        return body; 
    } 
 
    private static HttpResponse sendRequest(DefaultHttpClient httpclient, 
            HttpUriRequest httpost) { 
    HLog.m_messagelog.debug("execute post..."); 
        HttpResponse response = null; 
         
        try { 
            response = httpclient.execute(httpost); 
        } catch (ClientProtocolException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        return response; 
    } 
 
    private static HttpPost postForm(String url, Map<String, String> params){ 
         
        HttpPost httpost = new HttpPost(url); 
        List<NameValuePair> nvps = new ArrayList <NameValuePair>(); 
         
        Set<String> keySet = params.keySet(); 
        for(String key : keySet) { 
            nvps.add(new BasicNameValuePair(key, params.get(key))); 
        } 
         
        try { 
        HLog.m_messagelog.debug("set utf-8 form entity to httppost"); 
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 
        } catch (UnsupportedEncodingException e) { 
            e.printStackTrace(); 
        } 
         
        return httpost; 
    } 

}









import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.httpclient.HttpStatus;
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.mime.MultipartEntity;
import org.apache.http.entity.mime.content.InputStreamBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import com.hsun.HLog;

public class FileUpLoad {

public static void fileUpLoad(HttpServletRequest request,
HttpServletResponse response,String url) throws Exception{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String loginName = request.getParameter("loginName");
String kind = request.getParameter("kind");
String terminalNo=request.getParameter("terminalNo");
    String dateTime=request.getParameter("dateTime");
    String trace_no = request.getParameter("trace_no");
String sncode = request.getParameter("SN");
String merchant_no = request.getParameter("merchantNo");
String record_no = request.getParameter("recordNo");
String batch_no = request.getParameter("batchNo");
String data = "loginName="+loginName+"&kind="+kind+"&terminalNo="+terminalNo+"&dateTime="+dateTime+"&trace_no="+trace_no
+"&SN="+sncode+"&merchantNo="+merchant_no+"&recordNo="+record_no+"&batchNo="+batch_no;
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory dff = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(dff);
sfu.setFileSizeMax(100000000L);
sfu.setSizeMax(300000000L);
sfu.setHeaderEncoding("utf-8");
FileItemIterator fii = sfu.getItemIterator(request);
while (fii.hasNext()) {
FileItemStream fis = fii.next();
if ((!fis.isFormField()) && (fis.getName().length() > 0)) {
int index = fis.getName().lastIndexOf("\\");
String fileName = fis.getName().substring(index+1);
HLog.m_messagelog.debug("fis.getName():"+fis.getName()+" fis.getFieldName():"+fis.getFieldName());
InputStreamBody fileBody = new InputStreamBody(fis.openStream(),fileName);
HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(url+data); 
    MultipartEntity entity = new MultipartEntity(); 
entity.addPart("image",fileBody);
post.setEntity(entity);
HttpResponse res = httpclient.execute(post); 
if(HttpStatus.SC_OK==res.getStatusLine().getStatusCode()){   
HttpEntity entitys = res.getEntity(); 
           if (entity != null) { 
               //System.out.println("entity.getContentLength():"+entity.getContentLength()); 
               response.getWriter().print(EntityUtils.toString(entitys,HTTP.UTF_8));
           } 
    } 
    httpclient.getConnectionManager().shutdown();
}
}


// FileItemStream fis = fii.next();
// HLog.m_messagelog.debug("fis.getName():"+fis.getName()+" fis.getFieldName():"+fis.getFieldName());
// int index = fis.getName().lastIndexOf("\\");
// String fileName = fis.getName().substring(index+1);
// InputStreamBody fileBody = new InputStreamBody(fis.openStream(),fileName);
// HttpClient httpclient = new DefaultHttpClient(); 
//     HttpPost post = new HttpPost(url+data); 
//     MultipartEntity entity = new MultipartEntity(); 
// entity.addPart("image",fileBody);
// post.setEntity(entity);
// HttpResponse res = httpclient.execute(post); 
// if(HttpStatus.SC_OK==res.getStatusLine().getStatusCode()){   
// HttpEntity entitys = res.getEntity(); 
//            if (entity != null) { 
//                //System.out.println("entity.getContentLength():"+entity.getContentLength()); 
//                response.getWriter().print(EntityUtils.toString(entitys,HTTP.UTF_8));
//            } 
//     } 
//     httpclient.getConnectionManager().shutdown(); 
}
}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics