HttpClient doPost doGet 请求 返回内存流
来源:互联网 发布:一部电脑管两家淘宝店 编辑:程序博客网 时间:2024/05/22 06:26
import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;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.entity.ContentProducer;import org.apache.http.entity.EntityTemplate;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;/** * http invoker for doPost request or doGet request, return memory stream * <code>OutputStream</code>,ie. <code>ByteArrayOutputStream</code> * * * @author * @see org.apache.http.client.HttpClient */public class HttpInvoker{/** * doGet方式访问URL * * @param url * @return OutputStream */public static OutputStream doGet(String url){HttpClient httpclient = new DefaultHttpClient();OutputStream os = null;try{HttpGet httpget = new HttpGet(url);HttpResponse response = httpclient.execute(httpget);HttpEntity entity = response.getEntity();if (entity != null){InputStream instream = entity.getContent();os = new ByteArrayOutputStream();int temp = 0;while ((temp = instream.read()) != -1){os.write(temp);}os.flush();os.close();return os;}}catch (Exception e){}finally{httpclient.getConnectionManager().shutdown();}return null;}/** * http url request with parameter map * * @param url server url * @param parameterMap Parameters * @return OutputStream */public static OutputStream doPostWithUrlParams(String url,Map<String , Object> parameterMap){List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();for (Map.Entry<String , Object> element : parameterMap.entrySet()){nameValuePairs.add(new BasicNameValuePair(element.getKey(), String.valueOf(element.getValue())));}try{return doPost(url, new UrlEncodedFormEntity(nameValuePairs));}catch (UnsupportedEncodingException e){}return null;}/** * post方式写对象流到服务端 * * @param url server url * @param obj Object * @return OutputStream */public static OutputStream doPostWithObject(String url, final Object obj){ContentProducer cp = new ContentProducer(){// 二进制流public void writeTo(OutputStream outstream) throws IOException{ObjectOutputStream oos = new ObjectOutputStream(outstream);oos.writeObject(obj);oos.flush();oos.close();}};return doPost(url, new EntityTemplate(cp));}/** * * httpClient 执行post请求 返回 OutputStream对象 * * @param url String * @param entity HttpEntity * @return OutputStream */private static OutputStream doPost(String url, HttpEntity entity){HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost(url);OutputStream os = null;post.setEntity(entity);try{HttpResponse response = client.execute(post);HttpEntity resEntity = response.getEntity();InputStream in = resEntity.getContent();if (resEntity != null){os = new ByteArrayOutputStream();int temp = 0;while ((temp = in.read()) != -1){os.write(temp);}os.flush();os.close();EntityUtils.consume(resEntity);return os;}}catch (Exception e){}finally{client.getConnectionManager().shutdown();}return null;}}
0 0
- HttpClient doPost doGet 请求 返回内存流
- httpclient的dopost和doget请求
- 请求一个url 获得返回结果(doPost doGet方式)
- android doGet和doPost请求
- 第三十七天 HTTPClient(doget、dopost)
- doGet doPost
- doGet,doPost
- HttpClient 连接网络的两种方法doGet和doPost
- HttpUrlConnection和HttpClient的使用(doGet( )、doPost( )方法)
- 网络连接之——HttpClient(doGet和doPost)
- (java)自己模拟http请求的dopost和doget
- JavaWeb-3 Servlet之doGet doPost请求&生命周期简述
- Servlet--HttpServlet实现doGet和doPost请求的原理
- okHttp拦截器放在doGet和doPost请求中
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- httpclient 的 doPost请求中文乱码问题
- servlet doGet doPost区别
- doGet()与doPost
- 用函数初始化二维数组得到平年和闰年对应的天数
- fread()函数与fwrite()函数
- 利用dispatch_once保证线程安全来创建单例
- C语言 - 选择排序的基本用法
- 我是怎么利用微信月收入三万以上的!(绝对的干货来袭!)
- HttpClient doPost doGet 请求 返回内存流
- 为什么说Python是一门动态语言--Python的魅力
- 关于onActivityResult方法不执行的问题汇总
- Netty学习之一
- Eclipse中,Add Jars与Add Library的区别
- HDU 1003 解题报告
- [C/C++][Log]
- 如何获得整个程序的运行时间
- java中字符串 MD5密码的加密与验证