import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import java.net.URL;

import java.net.HttpURLConnection;

import java.net.URLEncoder;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import java.util.HashMap;

/**

*

* <p>Title: </p>

* <p>Description: http utils </p>

* <p>Company: </p>

* @version 1.0

*/

public class HttpUtils {

private static final String URL_PARAM_CONNECT_FLAG = "&";

private static Log log = LogFactory.getLog(HttpUtils.class);

private HttpUtils() {

}

/**

* GET METHOD

* @param strUrl String

* @param map Map

* @throws IOException

* @return List

*/

public static List URLGet(String strUrl, Map map) throws IOException {

String strtTotalURL = "";

List result = new ArrayList();

if(strtTotalURL.indexOf("?") == -1) {

strtTotalURL = strUrl + "?" + getUrl(map);

} else {

strtTotalURL = strUrl + "&" + getUrl(map);

}

log.debug("strtTotalURL:" + strtTotalURL);

URL url = new URL(strtTotalURL);

HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setUseCaches(false);

con.setFollowRedirects(true);

BufferedReader in = new BufferedReader(

new InputStreamReader(con.getInputStream()));

while (true) {

String line = in.readLine();

if (line == null) {

break;

}

else {

result.add(line);

}

}

in.close();

return (result);

}

/**

* POST METHOD

* @param strUrl String

* @param content Map

* @throws IOException

* @return List

*/

public static List URLPost(String strUrl, Map map) throws IOException {

String content = "";

content = getUrl(map);

String totalURL = null;

if(strUrl.indexOf("?") == -1) {

totalURL = strUrl + "?" + content;

} else {

totalURL = strUrl + "&" + content;

}

URL url = new URL(strUrl);

HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setDoInput(true);

con.setDoOutput(true);

con.setAllowUserInteraction(false);

con.setUseCaches(false);

con.setRequestMethod("POST");

con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=GBK");

BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(con.

getOutputStream()));

bout.write(content);

bout.flush();

bout.close();

BufferedReader bin = new BufferedReader(new InputStreamReader(con.

getInputStream()));

List result = new ArrayList();

while (true) {

String line = bin.readLine();

if (line == null) {

break;

}

else {

result.add(line);

}

}

return (result);

}

/**

* ���URL

* @param map Map

* @return String

*/

private static String getUrl(Map map) {

if (null == map || map.keySet().size() == 0) {

return ("");

}

StringBuffer url = new StringBuffer();

Set keys = map.keySet();

for (Iterator i = keys.iterator(); i.hasNext(); ) {

String key = String.valueOf(i.next());

if (map.containsKey(key)) {

Object val = map.get(key);

String str = val!=null?val.toString():"";

try {

str = URLEncoder.encode(str, "GBK");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

url.append(key).append("=").append(str).

append(URL_PARAM_CONNECT_FLAG);

}

}

String strURL = "";

strURL = url.toString();

if (URL_PARAM_CONNECT_FLAG.equals("" + strURL.charAt(strURL.length() - 1))) {

strURL = strURL.substring(0, strURL.length() - 1);

}

return (strURL);

}

}

HttpUtils(2)的更多相关文章

  1. XUtils框架中HttpUtils使用Get请求时总是返回相同信息的问题解决,xutilshttputils

    如需转载请标明出处:http://blog.csdn.net/itas109 版本:Xutils 2014年11月11日 下载地址:https://github.com/wyouflf/xUtils ...

  2. 使用httputils上传图片到服务器

    //创建httpUtils对象 HttpUtils mRegHttpUtils = new HttpUtils(); //图片路径 String path = "/sdcard/Downlo ...

  3. 3. Android框架和工具之 xUtils(HttpUtils)

    1. HttpUtils 作用: 支持同步,异步方式的请求: 支持大文件上传,上传大文件不会oom: 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求: 下载支持301/3 ...

  4. 反射机制及开源框架xUitls的使用,使用HttpUtils通过断点续传下载文件

    反射: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性 Java反射机制主要提供下面几种用途: 1•在运行时判断 ...

  5. xutils的HttpUtils,Post和Get基本使用,以及BitmapUtils的简单使用

    开篇报错注意:本教程是基于xUtils-2.6.14.jar版本实现的 由于studio中6.0以后安卓取消了httpclient,而xutils则基于httpclient开发的,所以现在无法使用,将 ...

  6. XUtils骨架HttpUtils采用Get总是返回请求解决问题的相同信息

    如需转载请注明出处:http://blog.csdn.net/itas109 版本号:Xutils 2014年11月11日 下载地址:https://github.com/wyouflf/xUtils ...

  7. Androids含文档erver结束(工具包 Httputils)两

    在同server在...的基础上,本文client还登录界面 Andriod简单http get请求基础上,用户注冊后跳转到下载界面,本文下载界面仅仅有两个View,一个是textView显示注冊后u ...

  8. 客户端 HttpUtils.java

    package com.http.post; import java.io.ByteArrayOutputStream; import java.io.IOException; import java ...

  9. 使用HttpUtils 上传视频文件

    private void shangchuan(){                 //文件的路径        //File file=new File(path);        File fi ...

  10. 使用HttpUtils完成Http Basic 认证

    调用声网(agora)的远程接口(Restful Api)时,对方需要使用Basic Auth的方式进行认证(需要输入用户名和密码). 一,使用Postman完成基于Basic Auth的Http认证 ...

随机推荐

  1. [SDIO].SDIO总线详解

    转自:https://blog.csdn.net/liuhan33025/article/details/51131848 SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的 ...

  2. ELK日志分析系统搭建 windows

    1 分别下载elk包 下载地址 https://www.elastic.co/cn/downloads 2 将这三个解压到同一个目录下,便于管理 3 elasticsearch不需要修改配置 默认即可 ...

  3. 51nod 2489 小b和灯泡

    小b有n个关闭的灯泡,编号为1...n. 小b会进行n轮操作,第i轮她会将编号为i的倍数的灯泡的开关状态取反,即开变成关,关变成开. 求n轮操作后,有多少灯泡是亮着的. 收起   输入 输入一个数字表 ...

  4. sql null+字符=null

    哦,谢谢你,我还想问一个declare @temp varchar(10),@identity varchar(10),@sura varchar(10),@p int,@len int,@nod1  ...

  5. centos7部署inotify与rsync实现实时数据同步

    实验环境:CentOS Linux release 7.6.1810 node1:192.168.216.130 客户端(向服务端发起数据同步) node2:192.168.216.132 服务端(接 ...

  6. 【Selenium-WebDriver实战篇】selenium之使用Tess4J进行验证码图片识别内容

    ==================================================================================================== ...

  7. HBase数据结构

    1 RowKey 与nosql数据库们一样,RowKey是用来检索记录的主键.访问HBASE table中的行,只有三种方式: 1.通过单个RowKey访问 2.通过RowKey的range(正则) ...

  8. Java代码写PDF-保全批单

    前言:最近自己要开发一个保全批单模块,由于自己在平时没有怎么接触过批单类型模块,甲方给了自己一套word模板,自己看了一下,个险的模板比较简单,但是团险一看,自己比较蒙圈,询问需求负责人说word中的 ...

  9. python操作json文件获取内容

    写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对 ...

  10. 基金名称中的ABC是什么意思,我们该如何选择?

    作者:牛大 | 公众号:定投五分钟 大家好,我是牛大.每天五分钟,投资你自己:坚持基金定投,终会财富自由! 大家经常会看到基金名称后面有字母ABC,这个表示什么意思呢,以及我们该如何选择呢?今天牛大给 ...