package org.crazyit.net;
import java.io.*;
import java.net.*;
import java.util.*;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2010, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class GetPostUtil
{
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param params
* 请求参数,请求参数应该是name1=value1&name2=value2的形式。
* @return URL所代表远程资源的响应
*/
public static String sendGet(String url, String params)
{
String result = "";
BufferedReader in = null;
try
{
String urlName = url + "?" + params;
URL realUrl = new URL(urlName);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 建立实际的连接
conn.connect();
// 获取所有响应头字段
Map<String, List<String>> map = conn.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet())
{
System.out.println(key + "--->" + map.get(key));
}
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += "\n" + line;
}
}
catch (Exception e)
{
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally
{
try
{
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
return result;
}
/**
* 向指定URL发送POST方法的请求
*
* @param url
* 发送请求的URL
* @param params
* 请求参数,请求参数应该是name1=value1&name2=value2的形式。
* @return URL所代表远程资源的响应
*/
public static String sendPost(String url, String params)
{
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try
{
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(params);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += "\n" + line;
}
}
catch (Exception e)
{
System.out.println("发送POST请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally
{
try
{
if (out != null)
{
out.close();
}
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
return result;
}
}
分享到:
相关推荐
在VC++编程环境中,HTTP(超文本传输协议)Get和Post请求是常见的网络通信方法,主要用于从或向Web服务器发送数据。MFC(Microsoft Foundation Classes)库为VC++提供了便捷的方式来实现这些功能。本文将详细讲解...
在本例中,我们将探讨如何使用Boost.Asio实现HTTP GET和POST请求。 首先,让我们理解GET和POST请求的基本概念。GET是HTTP协议中最常见的请求方法,用于从服务器获取资源。而POST请求通常用于向服务器发送数据,如...
HTTP是互联网上应用最为广泛的一种网络协议,GET和POST是HTTP协议中的两种主要请求方法,它们在Web开发中扮演着重要角色。理解这两者的工作原理和区别对于进行网络编程至关重要。 1. GET请求: GET请求是HTTP中最...
QT实现的http GET POST操作 #include #include #include #include #include <QtNetwork/QHttpRequestHeader>
综上所述,"http get post 请求接口工具类"涉及到的核心概念包括HTTP请求方式的运用,接口调用的封装,以及数据安全的保障措施,如参数加密、RSA签名来确保数据安全,以及字符集转换和Base64编码来处理文本和二进制...
"POST_SHTTP协议"指的是这个程序支持使用POST方法来向服务器发送数据,而"linux http get post"表明这个程序在Linux环境下实现了HTTP的GET和POST请求。"linux_http协议"进一步强调了这个实现是在遵循标准HTTP协议的...
标题 "WCF Web HTTP get post wcf reset ful" 暗示了我们正在讨论Windows Communication Foundation(WCF)服务中的Web HTTP绑定,以及与GET、POST请求相关的方法,可能还包括服务重置和完整配置(ful)的话题。...
本项目“http get post实现-转”是用C语言实现的一个轻量级的HTTP服务器,名为Tinyhttpd,它支持GET和POST两种请求方法。下面我们将详细讨论这两个请求方法以及C语言实现HTTP服务器的关键点。 1. GET与POST请求方法...
在本资源中,我们主要关注HTTP的两种主要请求方法:GET和POST,以及如何使用C#语言来实现这些功能。这份源代码提供了对HTTP协议进行分析的工具,对于学习和开发C#类爬虫程序的初学者来说非常有帮助。 GET方法是HTTP...
GET和POST是HTTP协议中最常见的两种请求方法,分别用于获取资源和提交数据。本文将详细讨论如何在C#中封装一个用于执行HTTP GET和POST请求的类,以及`HttpHelper.cs`文件中的关键实现。 首先,了解GET和POST的基本...
该类封装了http常用的get post等方法,使用非常简单。
例如,可以创建一个名为`THttpFunctions`的接口,并声明两个函数:`function HttpGet(const URL: string): string; stdcall;` 和 `function HttpPost(const URL, Data: string): string; stdcall;`。 - 在DLL项目的...
本文将深入探讨HTTP协议中的两种主要请求方法:GET和POST,以及它们在实际应用中的区别。 首先,GET请求是最常见的HTTP方法,用于从服务器获取资源。当用户在浏览器地址栏输入URL并按回车时,浏览器就会发送一个GET...
C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)。 玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的...
本文将深入探讨GET和POST两种主要的HTTP请求方法,以及如何在Go语言中实现它们。 GET和POST是HTTP协议中最常见的请求方法。GET主要用于获取资源,其请求参数通常包含在URL中,具有可缓存、可被搜索引擎抓取等特性,...
本篇文章将详细讲解HTTP中的GET和POST方法,并着重阐述它们在Android应用程序中向服务器发送数据的应用。 首先,GET和POST是HTTP协议中两种主要的请求方法,它们用于从服务器获取资源或向服务器提交数据。 1. GET...
用的库比较通用,各个平台和各个版本的gcc应该都可以用 ## 目前测试过可用平台 > x86_64 debian11 > arm(s3c2440) linux2.26 ## 目前测试过可用编译器 > gcc10(x86) > gcc4(x86) ...> gcc3(arm)
mfc http post 和get 请求