package demo.utils;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public final class HttpURLUtils
{
public static void main(String[] args)
{
}
public static String doPost(String reqUrl, Map<String, String> parameters)
{
HttpURLConnection urlConn = null;
try {
urlConn = sendPost(reqUrl, parameters);
String responseContent = getContent(urlConn);
return responseContent.trim();
} finally {
if (urlConn != null) {
urlConn.disconnect();
urlConn = null;
}
}
}
public static String doUploadFile(String reqUrl, Map<String, String> parameters, String fileParamName, String filename, String contentType, byte[] data)
{
HttpURLConnection urlConn = null;
try {
urlConn = sendFormdata(reqUrl, parameters, fileParamName, filename, contentType, data);
String responseContent = new String(getBytes(urlConn));
return responseContent.trim();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
} finally {
if (urlConn != null)
urlConn.disconnect();
}
}
private static HttpURLConnection sendFormdata(String reqUrl, Map<String, String> parameters, String fileParamName, String filename, String contentType, byte[] data)
{
HttpURLConnection urlConn = null;
try {
URL url = new URL(reqUrl);
urlConn = (HttpURLConnection)url.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setConnectTimeout(5000);
urlConn.setReadTimeout(5000);
urlConn.setDoOutput(true);
urlConn.setRequestProperty("connection", "keep-alive");
String boundary = "-----------------------------114975832116442893661388290519";
urlConn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
boundary = "--" + boundary;
StringBuffer params = new StringBuffer();
Iterator iter;
if (parameters != null) {
for (iter = parameters.keySet().iterator(); iter.hasNext(); ) {
String name = (String)iter.next();
String value = (String)parameters.get(name);
params.append(boundary + "\r\n");
params.append("Content-Disposition: form-data; name=\"" + name + "\"\r\n\r\n");
params.append(value);
params.append("\r\n");
}
}
StringBuilder sb = new StringBuilder();
sb.append(boundary);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"" + fileParamName + "\"; filename=\"" + filename + "\"\r\n");
sb.append("Content-Type: " + contentType + "\r\n\r\n");
byte[] fileDiv = sb.toString().getBytes("UTF-8");
byte[] endData = ("\r\n" + boundary + "--\r\n").getBytes("UTF-8");
byte[] ps = params.toString().getBytes("UTF-8");
OutputStream os = urlConn.getOutputStream();
os.write(ps);
os.write(fileDiv);
os.write(data);
os.write(endData);
os.flush();
os.close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
return urlConn;
}
private static String getContent(HttpURLConnection urlConn) {
try {
String responseContent = null;
InputStream in = urlConn.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
return responseContent;
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
public static byte[] getBytes(String reqUrl) {
return getBytes(reqUrl, null);
}
public static byte[] getBytes(String reqUrl, Map<String, String> parameters) {
HttpURLConnection conn = sendGet(reqUrl, parameters);
return getBytes(conn);
}
private static byte[] getBytes(HttpURLConnection urlConn) {
try {
InputStream in = urlConn.getInputStream();
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for (int i = 0; (i = in.read(buf)) > 0; )
os.write(buf, 0, i);
in.close();
return os.toByteArray();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
private static HttpURLConnection sendPost(String reqUrl, Map<String, String> parameters) {
HttpURLConnection urlConn = null;
try {
String params = generatorParamString(parameters);
URL url = new URL(reqUrl);
urlConn = (HttpURLConnection)url.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setConnectTimeout(5000);
urlConn.setReadTimeout(5000);
urlConn.setDoOutput(true);
byte[] b = params.getBytes("UTF-8");
urlConn.getOutputStream().write(b, 0, b.length);
urlConn.getOutputStream().flush();
urlConn.getOutputStream().close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
return urlConn;
}
private static HttpURLConnection sendGet(String reqUrl, Map<String, String> parameters) {
HttpURLConnection urlConn = null;
try {
String params = generatorParamString(parameters);
URL url = new URL(reqUrl);
urlConn = (HttpURLConnection)url.openConnection();
urlConn.setRequestMethod("GET");
urlConn.setConnectTimeout(5000);
urlConn.setReadTimeout(5000);
urlConn.setDoOutput(true);
if ((params != null) && (!"".equals(params))) {
byte[] b = params.getBytes();
urlConn.getOutputStream().write(b, 0, b.length);
urlConn.getOutputStream().flush();
urlConn.getOutputStream().close();
}
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
return urlConn;
}
public static String generatorParamString(Map<String, String> parameters)
{
StringBuffer params = new StringBuffer();
Iterator iter;
if (parameters != null) {
for (iter = parameters.keySet().iterator(); iter.hasNext(); ) {
String name = (String)iter.next();
String value = (String)parameters.get(name);
params.append(name + "=");
try {
params.append(URLEncoder.encode(value, "UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e.getMessage(), e);
} catch (Exception e) {
String message = String.format("'%s'='%s'", new Object[] { name, value });
throw new RuntimeException(message, e);
}
if (iter.hasNext()) params.append("&");
}
}
return params.toString();
}
public static String doGet(String link, String charset)
{
try
{
URL url = new URL(link);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/5.0");
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for (int i = 0; (i = in.read(buf)) > 0; ) {
out.write(buf, 0, i);
}
out.flush()
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
renren_api2.0.rar (46个子文件)
renren_api2.0
.project 2KB
.settings
.jsdtscope 500B
org.eclipse.core.resources.prefs 115B
org.eclipse.wst.common.component 476B
org.eclipse.jdt.core.prefs 598B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.mymetadata 311B
WebRoot
WEB-INF
web.xml 3KB
lib
Json-simple-1.1.jar 16KB
commons-logging-1.1.1.jar 59KB
renren-api2-sdk-1.0-SNAPSHOT.jar 357KB
classes
apiconfig.properties 187B
demo
utils
RenrenApiConfig.class 677B
HttpURLUtils.class 9KB
dao
RenrenUserMappingDAO.class 1KB
UserDAO.class 2KB
servlet
LoginServlet.class 3KB
ProfileServlet.class 2KB
LogoutServlet.class 1KB
RenrenLoginServlet.class 4KB
model
User.class 1KB
views
login.jsp 1KB
status.jsp 1016B
uploadphoto.jsp 2KB
feed.jsp 2KB
share.jsp 3KB
error.jsp 571B
profile.jsp 4KB
index.jsp 829B
META-INF
MANIFEST.MF 36B
img
renren_login_button.png 3KB
test.jpg 5KB
js
renren.js 53KB
.myeclipse
src
apiconfig.properties 187B
demo
utils
RenrenApiConfig.java 357B
HttpURLUtils.java 8KB
dao
RenrenUserMappingDAO.java 1KB
UserDAO.java 2KB
servlet
LoginServlet.java 3KB
ProfileServlet.java 2KB
LogoutServlet.java 2KB
RenrenLoginServlet.java 5KB
model
User.java 1KB
.classpath 607B
共 46 条
- 1
资源评论
夜华_
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功