public class TestGetPost
{
/**
* 向指定URL发送GET方法的请求
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
* @return URL所代表远程资源的响应
*/
public static String sendGet(String url , String param)
{
String result = "";
BufferedReader in = null;
try
{
String urlName = url + "?" + param;
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)
{
esult += "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 param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
* @return URL所代表远程资源的响应
*/
public static String sendPost(String url,String param)
{
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(param);
//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;
}
//提供主方法,测试发送GET请求和POST请求
public static void main(String args[])
{
//发送GET请求
String s = TestGetPost.sendGet("http://localhost:8888/abc/
login.jsp",null);
System.out.println(s);
// 发送POST请求
String s1 = TestGetPost.sendPost("http://localhost:8888/abc/a.jsp",
"user= 李刚&pass=abc");
System.out.println(s1);
}
}
分享到:
相关推荐
### 通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求 ...无论是简单的GET请求还是复杂的POST请求,`UTL_HTTP`都能提供强大的支持。掌握其使用方法对于提高Oracle应用程序与外部系统的集成能力具有重要意义。
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL...程序Demo示范了如何向Web站点发送GET请求、POST请求,并从Web站点取得响应。
"Web站点跨域说明"主要关注如何解决这个问题。在描述中提到的"虚拟路径资源跨域问题",可能是指在使用服务器的虚拟路径或者CDN服务时遇到的跨域限制。解决这个问题通常有以下几种方法: 1. **CORS(跨源资源共享)*...
GET请求用于获取资源,POST请求常用于提交表单数据。 3. **请求配置**:在发送请求前,我们可以设置各种参数,如超时时间、重试策略、连接池等。 4. **执行请求**:使用HttpClient的`execute`方法发送请求,并得到...
3. **POST请求限制**:通常,CSRF攻击利用的是GET请求,因为GET请求可以被轻易地嵌入到链接或者图片中。因此,对于可能引发重大改变的请求,应限制为POST方式,并结合Token验证。 4. **安全HTTP头**:设置如`X-XSRF...
当用户尝试查看一个含有Tableau Server视图的网页时,他们的浏览器向Web服务器发送GET请求,请求HTML内容。这是整个交互流程的起点。 2. **Web服务器与Tableau Server的POST交互**: 接收到请求后,Web服务器向...
使用HttpClient来模拟浏览器GET_POST HttpClient是一个Apache开源组织中的项目,隶属于Jakarta的commons项目,旨在简化HTTP客户端与服务器进行各种通讯编程。通过使用HttpClient,可以轻松地解决以前很头疼的事情,...
HTTP请求方法包括GET、POST、PUT、DELETE等,GET请求用于从指定资源请求数据,POST请求用于向指定资源提交要被处理的数据。 三、HTTP消息类型 HTTP消息有两种类型:请求消息和响应消息。请求消息由请求行、请求头...
- JSONP简单易用,无需服务器端特殊配置,但仅支持GET请求,无法处理复杂请求和携带Cookie,安全性也较低。 总的来说,CORS是推荐的现代跨域解决方案,而JSONP在某些特定场景下仍有一定的适用性。理解并合理运用这...
在"2-AjaxApp"这个项目中,可能涉及的是使用Ajax技术创建的一个Web应用程序,它可能包括向服务器发送请求、获取数据并动态更新页面元素等功能。在Windows 10环境下,开发者可以利用浏览器的开发工具(如Chrome ...
`curl_setopt()`函数中的`CURLOPT_POST`选项用来设置请求类型,`CURLOPT_POSTFIELDS`用于设置POST请求的数据。 4. **HTTP头信息**:`curl_setopt()`函数中的`CURLOPT_HTTPHEADER`选项用于设置HTTP头,例如设置...
在发送GET请求时,先初始化cURL,设置请求的URL,然后执行请求并关闭cURL会话,最后输出获取的数据。在发送POST请求时,除了上述操作外,还需要设置CURLOPT_POST为1,并通过CURLOPT_POSTFIELDS传递POST数据。 此外...
GET 请求是最常用的请求方式,用户如没有设置,默认情况下浏览器向服务器发送的都是 GET 请求。POST 请求通常用于提交表单数据。HEAD 请求用于获取资源的元信息。OPTIONS 请求用于获取服务器支持的请求方式等信息。...
5. **405 Method Not Allowed**:这个错误意味着请求的方法(如GET、POST等)不受服务器支持,或者未被允许用于指定的资源。需要检查请求方法是否与服务器接口定义一致。 6. **406 Not Acceptable**:这个错误表示...
通过创建XMLHttpRequest实例,设置HTTP请求方法(GET或POST)、URL、数据等,然后发送请求。接收到响应后,解析数据并用JavaScript操作DOM更新页面。 **JSON与XML** 虽然名字中有XML,但现代Ajax更多使用JSON...
发现一个很奇怪的问题,每次前端发起请求的时候,通过浏览器的开发者工具都能看到在Network下同一个url有两条请求,第一条请求的Method为OPTIONS,第二条请求的Method才是真正的Get或者Post,并且,第一条请求无数据...
这款服务器能够帮助用户在指定的IP地址和端口上快速部署并运行一个小型的Web站点,为学习和测试提供便利。它的核心功能是处理HTTP请求并返回响应,支持基本的静态资源服务,如HTML、CSS和JavaScript文件的访问。 ...
请求是客户端发起的,包括方法(GET、POST等)、URL、头部和可能的实体主体;应答则包含了状态码、头部和实体主体(通常是请求的资源)。 2. **统一资源定位符(URL)** - URL是网络资源的唯一标识,包括协议、...