java http的get,post请求

初学可用F12查看任意网页帮助理解

package httpTest;

import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
/**
* 向指定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 urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}

/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
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 += 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;
}

public static void main(String[] args) {
//发送 GET 请求
String s=HttpRequest.sendGet("http://192.168.178.173:8080/api/tweets/117854550","");
System.out.println(s);

//发送 POST 请求
// String sr=HttpRequest.sendPost("http://www.baidu.com", "key=123&v=456");
//System.out.println(sr);
}
}

时间: 2024-08-06 20:05:52

java http的get,post请求的相关文章

Java Http GET POST发送请求

Java Http GET POST发送请求 本文写了1个java 发送GET请求以及2个java 发送POST请求,新手,不喜勿喷! 背景: 这是一个使用魔宝支付的demo,首先需要移动端提交商城订单,请求平台签名接口进行签名并获取支付所需要的要素,对支付公司返回的信息验签后返回移动端这些要素,移动端启动支付公司SDK进行支付交易,后续还有接收交易结果通知消息. 说明 GET核心:CloseableHttpClient和CloseableHttpResponse,HttpGet POST核心:

【Stackoverflow问题精选】如何使用java.net.URLConnection收发HTTP请求

问题 如何使用java.net.URLConnection收发HTTP请求呢?处理Http请求,有哪些最佳实践? 讨论: 精华回答 首先声明,下面的代码,都是基本的例子.更严谨的话,还应加入处理各种异常的代码(如IOExceptions.NullPointerException.ArrayIndexOutOfBoundsException) 准备 首先,需要设置请求的URL以及charset(编码):另外还需要哪些参数,则取决于各自url的要求. String url = "http://exa

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月10日 http://www.cnblogs.com/

HTTP头部详解及使用Java套接字处理HTTP请求

HTTP头部详解及使用Java套接字处理HTTP请求 标签: javahttp服务器浏览器服务器socketurl 2008-03-18 17:39 9537人阅读 评论(1) 收藏 举报  分类: java(7)  进行Web开发关键是要了解超文本传输协议(HTTP),该协议用来传输网页.图像以及因特网上在浏览器与服务器间传输的其他类型文件.只要你在浏览器上输入一个URL,最前面的http://就表示使用HTTP来访问指定位置的信息.(大部分浏览器还支持其他一些不同的协议,其中FTP就是一个典

session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)

在登录过滤器中,判断请求是ajax请求还是超链接或者地址栏变化的请求 if (httpServletReq.getHeader("x-requested-with") != null && httpServletReq.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) { JSONObject jsessiontimeout = new JSONOb

java使用httpcomponents发送get请求

一.适用场景 在ESTful webservice中,get方法一般都是用来获取数据.我们可以使用httpcomponents组件来完成调用. 如我们需要发起get请求,携带的参数都是附加到请求的url后面. url:"http://www.xxxxx.com/message?id=000010" 二.代码示例 1 package com.demo.test; 2 3 import java.io.IOException; 4 5 import org.apache.http.Http

SQL state [72000]; error code [1013]; ORA-03111: 通信通道收到中断; java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名;java.sql.SQLException: ORA-01013: 用户请求取消当前的操作

1.oracle批量插入 2.java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名(数据太多的时候出现解决方法限制条数插入) /** * 按指定大小,分隔集合,将集合按规定个数分为n个部分 * @param <T> * * @param list * @param len * @return */ public static <T> List<List<T>> splitList(List<T> list,

JAVA发送GET、POST请求

注意:本文使用 httpcomponents-client-4.4 版,和以前的 3.X 版本有较大区别. 一.创建一个servlet来接收get或post请求 package guwen; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpS

java Servlet Filter 拦截Ajax请求

在做登录验证的时候,拦截ajax请求,并给出提示,登录超时 java代码 String requestType = request.getHeader("X-Requested-With");//请求类型 判定是否为ajax请求 if("XMLHttpRequest".equalsIgnoreCase(requestType)){//ajax请求 response.setHeader("sessionstatus", "timeout&

使用Fiddler捕获Java程序中的HTTP请求

默认Java程序是不支持Fiddler获取请求的,因此需要通过设置代理来实现. Fiddler的端口是8888,若Fiddler没有运行,则会抛出异常.   HttpClient4.5示例: HttpHost proxy = new HttpHost("127.0.0.1",8888); CloseableHttpClient httpClient = HttpClients.custom().setProxy(proxy).build();