package com.lebo.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
public class HttpUtil {
public static String readContentFromGet(String Url) throws IOException {
StringBuffer sb = new StringBuffer();
// 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
URL getUrl = new URL(Url);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
// 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
// 进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
// 服务器
//connection.setRequestProperty("User-Agent","Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4");
connection.connect();
// 取得输入流,并使用Reader读取
if(connection.getResponseCode()==200){
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
String lines;
while ((lines = reader.readLine()) != null) {
sb.append(lines);
}
System.out.println("HttpUtil,返回数据:"+sb.toString());
reader.close();
// 断开连接
connection.disconnect();
}else{
sb.append(connection.getResponseCode());
}
return sb.toString();
}
/**
*
* @param posturl 访问地址
* @param params 参数格式 param1=参数1¶m2=参数2
* @return
* @throws IOException
*/
public static Map<String, Object> readContentFromPost(String posturl) throws IOException {
Map<String, Object> map = new HashMap<String, Object>();
StringBuffer sb = new StringBuffer();
// Post请求的url,与get不同的是不需要带参数
URL postUrl = new URL(posturl);
// 打开连接
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
// 设置是否向connection输出,因为这个是post请求,参数要放在
// http正文内,因此需要设为true
connection.setDoOutput(true);
connection.setDoInput(true);
// Set the post method. Default is GET
connection.setRequestMethod("POST");
// Post 请求不能使用缓存
connection.setUseCaches(false);
// URLConnection.setFollowRedirects是static函数,作用于所有的URLConnection对象。
// connection.setFollowRedirects(true);
// URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数
connection.setInstanceFollowRedirects(true);
//设置请求超时时间毫秒
connection.setConnectTimeout(30000);
// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
// 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
// 进行编码
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
// 要注意的是connection.getOutputStream会隐含的进行connect。
connection.connect();
if(connection.getResponseCode()==200){
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
}
map.put("content", sb);
connection.disconnect();
return map;
}
/*public static String FlvcdPost(String posturl,String data) throws IOException {
posturl = "http://192.168.1.3:8081/lebo/rest/weixin/test.jsp";
StringBuffer sb = new StringBuffer();
try {
// 建立连接
URL url = new URL(posturl);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
// //设置连接属性
httpConn.setDoOutput(true);// 使用 URL 连接进行输出
httpConn.setDoInput(true);// 使用 URL 连接进行输入
httpConn.setUseCaches(false);// 忽略缓存
httpConn.setRequestMethod("POST");// 设置URL请求方法
String requestString = "客服端要以以流方式发送到服务端的数据...";
// 设置请求属性
// 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致
byte[] requestStringBytes = requestString.getBytes("UTF-8");
httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);
httpConn.setRequestProperty("Content-Type", "application/octet-stream");
httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
httpConn.setRequestProperty("Charset", "UTF-8");
//
String name = URLEncoder.encode("黄武艺", "utf-8");
httpConn.setRequestProperty("data", name);
// 建立输出流,并写入数据
OutputStream outputStream = httpConn.getOutputStream();
outputStream.write(requestStringBytes);
outputStream.close();
// 获得响应状态
int responseCode = httpConn.getResponseCode();
if (HttpURLConnection.HTTP_OK == responseCode) {// 连接成功
// 当正确响应时处理数据
String readLine;
BufferedReader responseReader;
// 处理响应流,必须与服务器响应流输出的编码一致
responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
while ((readLine = responseReader.readLine()) != null) {
sb.append(readLine).append("\n");
}
responseReader.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return sb.toString();
}*/
public static String FlvcdGet(String url)throws IOException{
StringBuffer json = new StringBuffer();
try {
URL oracle = new URL(url);
URLConnection conn = oracle.openConnection();
conn.setRequestProperty("User-Agent","Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4");
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(3000);
conn.setReadTimeout(3000);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String inputLine = null;
while ( (inputLine = in.readLine()) != null) {
json.append(inputLine);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
throw e;
}
return json.toString();
}
//根据接口获取接口信息
public static String loadJSON (String url) throws IOException {
StringBuffer json = new StringBuffer();
BufferedReader in =
丘比特001
- 粉丝: 25
- 资源: 13
最新资源
- AIMP2 .NET 互操作插件,AIMP2 .NET 互操作插件允许使用托管代码(C#、VB 等)为 AIMP2 编写插件。.zip
- 用Python绘制多彩气球与礼品盒图形艺术作品
- 小说app源码,前端原生开发,后端php
- AFileOrganizer - 保持文件井然有序,AFileOrganizer 这是一个用于将文件组织到文件夹中或根据其扩展名删除它们的软件,例如jpg,mp3等...zip
- Adaptive Intelligence 开源 .NET 框架,此框架是所有 Adaptive Intelligence 产品和应用程序的基础
- Ajax 控件和扩展程序,使用 Ajax 1.x 和 MS Visual Studio 2005 用 C# 编写的 Ajax 控件和扩展器。.zip
- AirLib - 用于将图片和视频发送到 Apple TV 的 C# 库和客户端应用程序,这是一个基于 Unofficial Airplay 协议规范的 C# 与 Apple TV 连接.zip
- Ajax.NET Professional 入门套件
- AlphaFS - 为 .NET 提供高级 Windows 文件系统支持
- Ajaxna - C# .NET & Javascript API框架,适用于无插件的3D网页游戏
- Akisi 是一个基于 .Net Framework 4.5.1 并使用 MVC 设计模式的简单博客平台。配置和使用它应该简单、快速和容易。.zip
- AmiBroker .NET 开发工具包
- ANTLR C# 语法,该项目将使用 ANTLR v3.2 生成 C# 4.0 解析器
- anito.NET - 对象关系映射框架,Anito.net 是一个正在开发中的、简单的、开源的 .Net 对象关系映射框架
- Apex APRS 是一个不同的新 APRS 客户端应用程序。主要特点:在线和离线缓存的地图查看来自多个热门来源快速、简单、直观且强大的用户界面.zip
- AppleScript 超薄版,一个超级精简的库,允许你从 mono 项目(从非 MonoMac 项目)执行 AppleScript。.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈