import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 项目名称:HC360SSOSecurity
* 类名称:HttpConnectionUtil
* 类描述:HttpConnection通信工具类
* 创建人:juapk
* 创建时间:May 24, 2012 2:38:06 PM
* 修改人:
* 修改时间:May 24, 2012 2:38:06 PM
* 修改备注:
* @version V1.0
*/
public class HttpConnectionUtil {
private static Log logger = LogFactory.getLog(HttpConnectionUtil.class.getName());
/**
* 以URL方式发送数据
*
* @param urlStr
* 发送地址 www.juapk.com
* @param contentStr
* 发送内容 id=666888
* @param charset
* 发送字符集 utf-8
* @param sResult
* 返回数据Buffer
* @param connectTimeout
* 连接主机超时(单位:毫秒) 30
* @param readTimeout
* 从主机读取数据超时(单位:毫秒) 30
* @return boolean 发送是否成功 (true||false)
*/
public static boolean sendStrOfPost(String urlStr, String contentStr, String charset, StringBuffer sResult,int connectTimeout,int readTimeout) {
boolean bResult = false;
String charsetName = charset;
URL url = null;
HttpURLConnection httpConnection = null;
InputStream httpIS = null;
java.io.BufferedReader http_reader = null;
try {
url = new URL(urlStr);
httpConnection = (HttpURLConnection) url.openConnection();
// 设置连接主机超时(单位:毫秒)
httpConnection.setConnectTimeout(connectTimeout);
// 设置从主机读取数据超时(单位:毫秒)
httpConnection.setReadTimeout(readTimeout);
httpConnection.setRequestMethod("POST"); // POST方式提交数据
httpConnection.setDoOutput(true);
httpConnection.setRequestProperty("Content-Length", String.valueOf(contentStr.getBytes().length));
PrintWriter out = null;
out = new PrintWriter(new OutputStreamWriter(httpConnection.getOutputStream(), charsetName));// 此处改动
// 发送请求
out.print(contentStr);
out.flush();
out.close();
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// 发送正常
bResult = true;
// 读取数据
httpIS = httpConnection.getInputStream();
http_reader = new java.io.BufferedReader(new java.io.InputStreamReader(httpIS, charsetName));
String line = null;
while ((line = http_reader.readLine()) != null) {
if (sResult.length() > 0) {
sResult.append("\n");
}
sResult.append(line);
}
logger.info("[URL][response][success]" + sResult);
} else {
logger.info("[URL][response][failure][code : " + responseCode + " ]");
}
} catch (IOException e) {
logger.error("[HttpUtil]sendStrOfPost error", e);
}
finally {
try {
if (http_reader != null)
http_reader.close();
if (httpIS != null)
httpIS.close();
if (httpConnection != null)
httpConnection.disconnect();
} catch (IOException e) {
logger.error("[HttpUtil]finally error", e);
}
}
return bResult;
}
}
分享到:
相关推荐
UploadFileUtil工具类可以针对各种文件(图片、声音)进行httpConnection 上传
Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下: ContentConnection connection = (ContentConnection) ...
相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家
通过HttpConnection请求跨域接口 public String invokeServiceMethod(String url,Map,String> params,Map, String> header) throws Exception{ HttpClient httpclient=new DefaultHttpClient(); HttpResponse...
android中利用httpconnection上传文件。可以选择要上传文件的路径,上传网址
java 基于https请求httpconnection, 在代码中加入tls, tls1.2等..
、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何图形时,抛出一个 UnsupportedShapeException异常。绘制类图并编程模拟实现。 ②...
本例演示最简单的android客户端和服务器端通信,客户端使用android4.0以上版本,服务器端为dynamic web project工程,使用时将client...因为android6.0以上不再支持httpclient通信,故本例使用HttpURLConnection类演示
handy包 http://blog.csdn.net/facepp/article/details/7439840
Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能
NULL 博文链接:https://wangxc.iteye.com/blog/591160
细心的开发者可能会发现,在用浏览器访问http时一般都会自动保持同一个会话,而用代码访问http连接时则每一次访问都会新建一个会话,那么我趁着这几天休假就把之前从网上资料中整理出的一个demo分享出来,实现安卓...
# struts-scan 快速检测struts命令执行漏洞,可批量。 # 运行环境 MAC/Linux下的Python2 # 支持对以下版本的检测 ...此工具仅限于漏洞验证,如若使用者引起相关的法律责任请自负,开发者不承担连带责任。
建立HTTP连接请求
利用HTTPConnection类设置文件上传,这里没有搭建服务器端代码,因为太简单了...
代码包含了httpurlconnection基本操作,一些正常的操作。
Android文件断点下载,使用HttpConnection
... ... 创建HTTP请求处理类:创建一个继承自http.server.BaseHTTPRequestHandler的...创建HTTP连接:使用http.client.HTTPConnection类创建一个HTTP连接对象,指定目标主机和端口。 发送HTTP请求:使用HTTP连接对象的req
at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191) at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80) at ...
安卓下载工具工程代码,使用HttpConnection,不是使用系统自带的DownloadManager,方便监听下载状态。使用handler发送进度、异常消息。