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();
}
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值