`

J2EE工具类:WebClient.java

阅读更多
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class WebClient {
	
	public String getWebContentByGet(String urlString, final String charset,
			int timeout) throws IOException {
		if (urlString == null || urlString.length() == 0) {
			return null;
		}
		urlString = (urlString.startsWith("http://") || urlString
				.startsWith("https://")) ? urlString : ("http://" + urlString)
				.intern();
		URL url = new URL(urlString);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setRequestMethod("GET");
		// 增加报头,模拟浏览器,防止屏蔽
		conn.setRequestProperty(
						"User-Agent",
						"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
		// 只接受text/html类型,当然也可以接受图片,pdf,*/*任意,就是tomcat/conf/web里面定义那些
		conn.setRequestProperty("Accept", "text/html");
		conn.setConnectTimeout(timeout);
		try {
			if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
				return null;
			}
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
		InputStream input = conn.getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(input,charset));
		String line = null;
		StringBuffer sb = new StringBuffer();
		while ((line = reader.readLine()) != null) {
			sb.append(line).append("\r\n");
		}
		if (reader != null) {
			reader.close();
		}
		if (conn != null) {
			conn.disconnect();
		}
		return sb.toString();

	}

	public String getWebContentByGet(String urlString) throws IOException {
		return getWebContentByGet(urlString, "iso-8859-1", 5000);
	}

	public String getWebContentByPost(String urlString,String data, final String charset,
			int timeout)throws IOException{
		if (urlString == null || urlString.length() == 0) {
			return null;
		}
		urlString = (urlString.startsWith("http://") || urlString
				.startsWith("https://")) ? urlString : ("http://" + urlString).intern();
		URL url = new URL(urlString);
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		 // 设置是否向connection输出,因为这个是post请求,参数要放在  http正文内,因此需要设为true
        connection.setDoOutput(true);   
        connection.setDoInput(true); 
        connection.setRequestMethod("POST");
        // Post 请求不能使用缓存   
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(true);
        //connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Type","text/xml;charset=UTF-8");
        // 增加报头,模拟浏览器,防止屏蔽
        connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows vista)");
        // 只接受text/html类型,当然也可以接受图片,pdf,*/*任意
        connection.setRequestProperty("Accept", "text/xml");//text/html
        connection.setConnectTimeout(timeout);
        connection.connect();
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        //String content = data;//+URLEncoder.encode("中文 ", "utf-8");
        //out.writeBytes(content);
 byte[] content = data.getBytes("UTF-8");//+URLEncoder.encode("中文 ", "utf-8");
        out.write(content);
        out.flush();   
        out.close();
		try {
			//必须写在发送数据的后面
			if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
				return null;
			}
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),charset));
        String line;
        StringBuffer sb=new StringBuffer();
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\r\n");
        }
        if (reader != null) {
			reader.close();
		}
		if (connection != null) {
			connection.disconnect();
		}
		return sb.toString();
	}
	public String getWebContentByPost(String urlString,String data) throws IOException {
		return getWebContentByPost(urlString, data,"UTF-8", 5000);//iso-8859-1
	}
	
	public static void main(String[] args) throws IOException {
		WebClient client=new WebClient();
		//get
//		String s = client.getWebContentByGet("http://www.baidu.com");
//		s = new String(s.getBytes("iso-8859-1"), "gb2312");
		//post
		String s = client.getWebContentByPost("http://localhost:8080/Lottery/login.portal","toPath=toPath&action=login&loginname=13761083826&password=111111");
//		s = new String(s.getBytes("iso-8859-1"), "UTF-8");
		System.out.println(s);
	}
}
分享到:
评论

相关推荐

    C#webClient.DownloadFileAsync异步源码

    本教程将详细解释`WebClient.DownloadFileAsync`方法,这是一个异步下载文件的功能,适用于C#开发者,特别是初学者。我们将探讨异步编程的基本概念,`DownloadFileAsync`的工作原理,以及如何在实际项目中应用。 1....

    WebClient-2.2.5.exe

    WebClient安装文件。 在Java世界中,有许多用于发送HTTP请求的库。比较三种流行的HTTP客户端:WebClient,HttpClient和OkHttp。WebClient是Spring 5中引入的非阻塞,反应式的Web客户端。它是在Project Reactor和...

    Setup_WebClient.exe

    Setup_WebClient.exe,是一款很好用的虚拟光驱,他专用内存很小,真的很不错了,哈哈

    Microsoft.Hadoop.WebClient.dll

    Microsoft.Hadoop.WebClient.dll 。。。。。。。。。。

    vbnet.rar_site:www.pudn.com

    开发者可能需要理解HTML解析,比如使用HtmlAgilityPack库来解析和操作HTML文档,或者使用内置的System.Net.WebClient或HttpClient类来下载网页内容。同时,为了实现过滤功能,可能还需要了解如何处理和存储过滤规则...

    servlettest

    1. **创建测试类**:在Java项目中创建一个新的类,继承自Junit的`@RunWith(MockitoJUnitRunner.class)`或者使用`@ExtendWith(SpringExtension.class)`(如果使用Spring框架)来启用测试支持。 2. **导入依赖**:...

    C#中WebClient实现文件下载

    `WebClient.DownloadDataAsync`和`WebClient.DownloadProgressChanged`事件可以用来实现这一功能。例如,可以在`DownloadProgressChanged`事件中更新进度条和计算下载速度: ```csharp wc.DownloadProgressChanged...

    精讲响应式WebClient.docx

    private WebClient webClient = WebClient.builder() .baseUrl("http://jsonplaceholder.typicode.com") .build(); @Test public void testMono() { Mono<PostDTO> mono = webClient .get() // 使用GET方法 ....

    WebClient下载文件展示进度条

    webClient.DownloadProgressChanged += WebClient_DownloadProgressChanged; webClient.DownloadFileCompleted += WebClient_DownloadFileCompleted; // 获取文件总大小 webClient.OpenReadAsync(new Uri(url))...

    DocumentReader-web-java-client:兼容jvm和android的Regula Document Reader Web API Java客户端

    Regula Document Reader Java客户端与jvm和android兼容文档识别就像读取两个字节一样容易。如果您对此客户有任何疑问或疑问,请通过与我们联系。邀请您提供(大小不一);我们总是很高兴收到请求请求,并竭尽所能...

    网碟&虚拟光驱 Setup_WebClient.exe

    虚拟光驱 用于安装光盘的映像文件 支持网上下载管理 相当好的资源呢 大家有兴趣可以试试

    用WebClient.UploadData方法上载文件数据的方法

    假如某网站有个表单,例如(url: http://localhost/login.aspx): 帐号 密码 我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用 WebClient.UploadData 方法来实现,将所要上传的数据拼成字符...

    webclient.lua自定义使用该服务

    webclient.lua自定义使用该服务

    htmlunit基本jar包

    2. **WebClient**:HTMLUnit的WebClient类是与网页进行交互的主要接口,可以发送HTTP请求,接收响应,并执行JavaScript。 3. **JavaScript引擎**:HTMLUnit可能集成了如Rhino或Nashorn这样的JavaScript引擎,用于...

    WebClient访问间歇性返回403解决方案.docx

    webclient.Credentials = CredentialCache.DefaultCredentials; ``` 此外,我们还需要模拟真实的浏览器请求,包括设置 User-Agent 和 Host 等头信息。下面是完整的代码: ```csharp WebClient webclient = new ...

    我所了解的内网渗透——内网渗透知识大总结 作者:未知.pdf

    这种类型的渗透测试通常涉及利用各种技术和工具来发现并利用内部网络中存在的漏洞。内网渗透的目标包括但不限于获取敏感数据、控制内部系统和服务、以及提升权限等。 #### 二、内网渗透概述 根据给定的部分内容,...

    webClient (通过向任一web服务器发送http请求,查看 服务器端过来的内容)

    通过向任一服务器发送http请求,查看server端过来的内容,状态... 将里面的java源文件放入任一java工程的default包中, 运行WebClient.java. 2.没有开发工具时: 先将java源文件编译为class文件, 再运行WebClent.class类.

    下载VisualStudio离线安装包,部分组件下载失败:WebClient download failed: Unable to connect to the remote server.(已解决)-附件资源

    下载VisualStudio离线安装包,部分组件下载失败:WebClient download failed: Unable to connect to the remote server.(已解决)-附件资源

    传输文件服务ftp的端口号.docx

    FTP 端口号详解 FTP(File Transfer Protocol,文件传输协议)是一种常用的网络文件传输协议,它允许用户在远程服务器上存储和检索文件。FTP 协议使用 TCP 协议进行数据传输,使用 21 号端口作为默认端口号。...

Global site tag (gtag.js) - Google Analytics