HttpUrlconnection 、Httpclient get 、post 请求核心代码

HttpURLConnection的使用

/*

* URL请求的类别分为二类,GET与POST请求。二者的区别在于:

* a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,

* b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。

*/

// url对象表示的是一个指定的资源

URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro.do");

// url对象的openConnection()
方法返回一个HttpURLConnection
对象,这个对象表示应用程序和url之间的通信连接

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在

// http正文内,因此需要设为true, 默认情况下是false;

urlConn.setDoOutput(true);

// 设置是否从httpUrlConnection读入,默认情况下是true;

urlConn.setDoInput(true);

// Post 请求不能使用缓存

urlConn.setUseCaches(false);

// 设定传送的内容类型是可序列化的java对象

// (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)

urlConn.setRequestProperty("Content-type","application/x-java-serialized-object");

// 设定请求的方法为"POST",默认是GET

urlConn.setRequestMethod("POST");

//建立和远程实际资源之间的实际连接,上面的这些属性要在connect()方法调用之前设置

urlConn.connect();

// 此处getOutputStream会隐含的进行connect (即:如同调用上面的connect()方法,如果是使用post请求

//可以不写urlConn.connect();

OutputStream outStrm = urlConn.getOutputStream();

// 现在通过输出流对象构建对象输出流对象,以实现输出可序列化的对象。

ObjectOutputStream oos = new ObjectOutputStream(outStrm);

// 向对象输出流写出数据,这些数据将存到内存缓冲区中

oos.writeObject(new String("我是测试数据"));

// 刷新对象输出流,将任何字节都写入潜在的流中(些处为ObjectOutputStream)

oos.flush();

// 关闭流对象。此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中,

// 再调用下边的getInputStream()函数时才把准备好的http请求正式发送到服务器

oos.close();

// 调用HttpURLConnection连接对象的getInputStream()函数,

// 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。

InputStream inStrm = urlConn.getInputStream(); // <===注意,实际发送请求的代码段就在这里

//----------------------------------

/*

* Post传参的方法

*/

OutputStream os = urlConn.getOutputStream();

String param = new String();

param = "CorpID=123&LoginName=qqq&name=" + URLEncoder.encode("汉字","GBK"); ;

os.write(param.getBytes());

//----------------------------------

/*

* 超时设置,防止 网络异常的情况下,可能会导致程序僵死而不继续往下执行

*/

//JDK 1.5以前的版本,只能通过设置这两个系统属性来控制网络超时:

//连接主机的超时时间(单位:毫秒)

System.setProperty("sun.net.client.defaultConnectTimeout", "30000");

//从主机读取数据的超时时间(单位:毫秒)

System.setProperty("sun.net.client.defaultReadTimeout", "30000");

//在JDK 1.5以后可以这样来设置超时时间

HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();

urlCon.setConnectTimeout(30000);

urlCon.setReadTimeout(30000);

//----------------------------------

/*

* 总结:

* HttpURLConnection的connect()函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。

* 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去。

*

* 对HttpURLConnection对象的一切配置都必须要在connect()函数执行之前完成。

* 而对outputStream的写操作,又必须要在inputStream的读操作之前。

* 这些顺序实际上是由http请求的格式决定的。

*

* 在http头后面紧跟着的是http请求的正文,正文的内容是通过outputStream流写入的,

* 实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络,

* 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。

* 至此,http请求的东西已经全部准备就绪。在getInputStream()函数调用的时候,就会把准备好的http请求

* 正式发送到服务器了,然后返回一个输入流,用于读取服务器对于此次http请求的返回信息。由于http

* 请求在getInputStream的时候已经发送出去了(包括http头和正文),因此在getInputStream()函数

* 之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改)

* 都是没有意义的了,执行这些操作会导致异常的发生。

*

*/

使用HttpUrlConnection 的步骤

1、创建 URL对象

2、通过1中创建的url对象的opconnnection() 方法获取 URLConnection或HttpUrlConnection对象,这个对象也就是应用程序和url所引用的资源之间的通信体

3、设置 2中创建的对象的一些属性,具体属性如下:

// http正文内,因此需要设为true, 默认情况下是false;

urlConn.setDoOutput(true);

// 设置是否从httpUrlConnection读入,默认情况下是true;

urlConn.setDoInput(true);

// Post 请求不能使用缓存

urlConn.setUseCaches(false);

// 设定传送的内容类型是可序列化的java对象

// (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)

urlConn.setRequestProperty("Content-type","application/x-java-serialized-object");

// 设定请求的方法为"POST",默认是GET

urlConn.setRequestMethod("POST");

4、调用2中创建的对象的connect() 方法进行连接

5、如果使用get请求,就不用管ouputStream 而如果使用的是post请求调用2中对象的getOutputStream()方法创建输出流,通过输出流将http请求实体中的请求参数传递到服务器

6、创建输入流 调用2中对象的getInputStream() 方法来创建输入流,来接受http请求的响应。

7、处理响应数据

*****************************urlconnection  get请求实例*******************

1、请求端代码

try{

//
请求地址

String parm="http://localhost:8080/music/user/delete.do?id=110&name=name";

//
创建url

URL url= new URL(parm);

//
使用httpurlconnection
进行请求的发送

HttpURLConnection con = (HttpURLConnection)url.openConnection();

//
设置相关属性,如果是post请求
请求参数在正文中所以允许输出流,如果是get        请求不用输出了因为参数是在url之后

con.setDoOutput(false);

//
响应数据的接受,所以我们要允许输入流

con.setDoInput(true);

//
设置是否要缓存

con.setUseCaches(false);

//Java对象的序列化,进行流的传递

//con.setRequestProperty(URLEncoder.encode("Content-type","UTF-8"),URLEncoder.encode("application/x-java-serialized-object","UTF-8"));

// 设置请求方式

con.setRequestMethod("GET");

//上面这些都是请求的一些属性的配置,也就是规则的定制

//建立一个tcp连接

con.connect();

//
接收请求响应数据

InputStream inStrm = con.getInputStream();

byte[] buffer= new byte[1024];

inStrm.read(buffer);

//
编码设置

String body= new String(buffer,"UTF-8");

System.out.println("返回内容"+body.toString());

}catch(Exception e){

e.printStackTrace();

}

2、服务器端代码

// 完整的请求路径:url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")

public void  delete(String id,String name,HttpServletResponse response,HttpServletRequest request){

System.out.println("请求到达 delete");

//userService.delUser(id);

String yid= id;

String yname=name;

System.out.println("请求参数id"+yid);

System.out.println("请求参数name:"+name);

try {

//
请求响应数据

OutputStream output= response.getOutputStream();

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

//
这里传递一个json
格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

byte [] b= jstring.getBytes("UTF-8");

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

*****************************urlconnection  post请求实例*******************

1、请求代码:

try{

//
创建url

URL url= new URL("http://localhost:8080/music/user/delete.do");

//
使用httpurlconnection
进行请求的发送

HttpURLConnection con = (HttpURLConnection)url.openConnection();

//
设置相关属性,如果是post请求
请求参数在正文中所以允许输出流,如果是get        请求不用输出了因为参数是在url之后

con.setDoOutput(true);

//
响应数据的接受,所以我们要允许输入流

con.setDoInput(true);

//
设置是否要缓存

con.setUseCaches(false);

//Java对象的序列化,进行流的传递

//con.setRequestProperty(URLEncoder.encode("Content-type","UTF-8"),URLEncoder.encode("application/x-java-serialized-object","UTF-8"));

// 设置请求方式

con.setRequestMethod("POST");

//上面这些都是请求的一些属性的配置,也就是规则的定制

//建立一个tcp连接

con.connect();

//
执行 tcp的连接上面的connect()
可以不执行

OutputStream outStrm = con.getOutputStream();

//现在通过输出流对象构建对象输出流对象,以实现输出可序列化的对象。

ObjectOutputStream oos = new ObjectOutputStream(outStrm);

//
请求参数,post请求的参数在实体中所以使用这种方式

String param = new String();

//
请求参数这里 id前面没有& id取
不到这是为什么?、

param ="&id=123&name=王海东";

byte [] b=param.getBytes("UTF-8");

//
将请求参数写到缓存中

oos.writeObject(b);

//刷新流

oos.flush();

//
关闭流,释放资源

oos.close();

//
接收请求响应数据,其实http在这是才发送

InputStream inStrm = con.getInputStream();

byte[] buffer= new byte[1024];

inStrm.read(buffer);

//
编码设置

String body= new String(buffer,"UTF-8");

System.out.println("返回内容"+body.toString());

}catch(Exception e){

e.printStackTrace();

}

2、服务器代码:

@RequestMapping(value="/delete.do")

public void  delete(String id,String name,HttpServletResponse response,HttpServletRequest request){

System.out.println("请求到达 delete");

//userService.delUser(id);

String yid= id;

String yname=name;

System.out.println("请求参数id"+yid);

System.out.println("请求参数name:"+name);

try {

//
响应输出流

OutputStream output= response.getOutputStream();

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

//
这里传递一个json
格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

byte [] b= jstring.getBytes("UTF-8");

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

org.apache.http.client.HttpClient get/post请求

请求步骤

1、创建httpclient 对象

2、创建 请求方式,构造函数的值为请求路径

3、调用1中对象的execute() 方法,参数为 2 的对象

4、获取请求响应数据

5、释放连接资源

6、处理数据

一、使用org.apache.http.client.HttpClient 的get请求来实现

1、请求核心代码:

// 创建 httpclient 对象

HttpClient httpclient = new DefaultHttpClient();

//创建请求方式,因为是get请求,所以可以在url后面连接请求参数

HttpGet  httpget= new HttpGet("http://localhost:8080/music/user/delete.do?id=110&name=name");

try{

// 执行请求,获取响应数据

HttpResponse response = httpclient.execute(httpget);

//  获取请求实体,

HttpEntity entity = response.getEntity();

// 获取返回实例的内容的长度

long len= entity.getContentLength();

// 获取 content type

Header  head= entity.getContentType();

String  bodys= head.toString();

System.out.println("内容长度"+len +"head 内容"+bodys);

//实例流的获取

if(entity != null){

InputStream input= entity.getContent();

byte []buffer= new byte[2048];

input.read(buffer);

String body= new String(buffer,"utf-8");

System.out.println("获取资源"+body);

JSONObject json= new JSONObject();

json=JSONObject.fromObject(body);

String ids= json.getString("id");

String names=json.getString("name");

System.out.print(ids);

System.out.print(names);

}

}catch(HTTPException e){

e.printStackTrace();

}catch(IOException ee){

ee.printStackTrace();

}finally{

httpget.releaseConnection();

}

2、服务器端响应请求核心代码:

请求完整路径 url=http://localhost:8080/music/user/delete.do?

@RequestMapping(value="/delete.do")

public void  delete(String id,String name,HttpServletResponse response){

System.out.println("请求到达 delete");

String yid= id;

String yname=name;

System.out.println("请求参数"+yid);

System.out.println("请求参数name:"+name);

try {

OutputStream output= response.getOutputStream();

// 编码的设置

response.setCharacterEncoding("UTF-8");

// 主题类型的设置

response.setContentType("text/html");

// 这里传递一个json 格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

// 编码设置

byte [] b= jstring.getBytes("UTF-8");

// 响应数据输出

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

二、使用org.apache.http.client.HttpClient 的get请求来实现,自己拼凑url 以及多个请求数据

1、请求发送核心代码

// 创建 httpclient 对象   这里使用httpclient

HttpClient httpclient = new DefaultHttpClient();

// 创建请求方法对象

HttpGet httpget = new HttpGet();

try{

//请求参数对象的创建以及参数的设置

List<NameValuePair> qparams = new ArrayList<NameValuePair>();

qparams.add(new BasicNameValuePair("id", "110110"));

qparams.add(new BasicNameValuePair("name", "you name"));

qparams.add(new BasicNameValuePair("age", "10"));

qparams.add(new BasicNameValuePair("sex", "man"));

// url的拼装,以及请求参数编码的设置

java.net.URI uri = URIUtils.createURI("http", "localhost:8080/music/user", -1, "/delete.do",

URLEncodedUtils.format(qparams, "UTF-8"), null);

// 给请求路径设置值,据访问路径

httpget.setURI(uri);

System.out.println(httpget.getURI());

// 执行请求,获取响应数据

HttpResponse response = httpclient.execute(httpget);

//  获取请求实体,

HttpEntity entity = response.getEntity();

// 获取返回实例的内容的长度

long len= entity.getContentLength();

// 获取 content type

Header  head= entity.getContentType();

String  bodys= head.toString();

System.out.println("内容长度:"+len +" head 内容:"+bodys);

//实例流的获取

if(entity != null){

InputStream input= entity.getContent();

byte []buffer= new byte[2048];

input.read(buffer);

String body= new String(buffer,"utf-8");

System.out.println("获取资源"+body);

JSONObject json= new JSONObject();

json=JSONObject.fromObject(body);

String ids= json.getString("id");

String names=json.getString("name");

System.out.print(ids);

System.out.print(names);

}

}catch(HTTPException e){

e.printStackTrace();

}catch(IOException ee){

ee.printStackTrace();

}catch(Exception eee){

eee.printStackTrace();

}finally{

httpget.releaseConnection();

}

2、接收请求,响应请求核心代码

请求完整路径:url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")

public void  delete(String id,String name,HttpServletResponse response){

System.out.println("请求到达 delete");

String yid= id;

String yname=name;

System.out.println("请求参数"+yid);

System.out.println("请求参数name:"+name);

try {

OutputStream output= response.getOutputStream();

// 输出内容编码的设置

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

// 这里传递一个json 格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

// 编码的设置

byte [] b= jstring.getBytes("UTF-8");

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

三、使用org.apache.http.client.HttpClient 的post请求来实现

1、请求端核心代码

// 创建 httpclient 对象   这里使用httpclient

HttpClient httpclient = new DefaultHttpClient();

// 请求参数的组装

List<NameValuePair> qparams = new ArrayList<NameValuePair>();

qparams.add(new BasicNameValuePair("id", "110110"));

qparams.add(new BasicNameValuePair("name", "you name"));

qparams.add(new BasicNameValuePair("age", "10"));

qparams.add(new BasicNameValuePair("sex", "man"));

try{

// UrlEncodedFormEntity 实例将会使用URL编码来编码参数

UrlEncodedFormEntity  entity = new UrlEncodedFormEntity(qparams,"UTF-8");

HttpPost httppost= new HttpPost("http://localhost:8080/music/user/delete.do");

// 请求参数的设置

httppost.setEntity(entity);

// 请求执行,以及响应数据的获取

HttpResponse  response = httpclient.execute(httppost);

// 获取请求响应

HttpEntity entitys = response.getEntity();

// 响应内容的长度

long len= entity.getContentLength();

// 响应内容的类型

Header  head= entity.getContentType();

String  bodys= head.toString();

System.out.println("内容长度:"+len +" head 内容:"+bodys);

if(entitys != null){

// 获取响应数据

InputStream input= entitys.getContent();

byte []buffer= new byte[2048];

input.read(buffer);

// 编码设置

String body= new String(buffer,"utf-8");

System.out.println("获取资源"+body);

}

}catch(Exception e){

e.printStackTrace();

}

2、接收请求,响应请求核心代码

请求完整路径: url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")

public void  delete(String id,String name,String age,HttpServletResponse response){

System.out.println("请求到达 delete");

String yid= id;

String yname=name;

String ages=age;

System.out.println("请求参数"+yid);

System.out.println("请求参数name:"+name);

System.out.println("请求参数age:"+ages);

try {

OutputStream output= response.getOutputStream();

//响应内容编码的设置

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

// 这里传递一个json 格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

byte [] b= jstring.getBytes("UTF-8");

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

apache.commons.httpclient.HttpClient get/post请求

一、httpclient 发送请求的步骤(流程)

1、创建httpclient 对象

2、创建某种连接方式的对象 --如 GetMethod    PostMethod  等对象,构造函数中是请求地址即url,如果是get请求可以在url后面添加请求参数

如: http://127.0.0.1:8080/music?id=1&name=name

3、 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例,也就是这时候发送了请求

4、获取服务器响应的值

5、关闭连接,这个和 连接数据库之后释放资源一样,执行之后要释放连接资源

6、处理获得的数据

二、核心代码:org.apache.commons.httpclient.HttpClient   get请求来实现,响应返回的数据格式为jsonobject格式

1、发送请求,请求成功响应数据的处理

// 创建 httpclient 对象

HttpClient  httpclient= new HttpClient();

//创建请求方式

GetMethod getMethod = new GetMethod("http://localhost:8080/music/user/delete.do?id=1");

// 响应状态的判断

try{

int status= httpclient.executeMethod(getMethod);

// 200  ok 请求成功,否则请求失败

if(status!=HttpStatus.SC_OK){

System.err.println("Method failed: "

+ getMethod.getStatusLine());

}

// 请求成功,使用string获取响应数据

String info = null;

info = new String(getMethod.getResponseBodyAsString());

// 请求成功,使用 byte数组来获取响应数据

byte[] responsebody= getMethod.getResponseBody();

// 编码要和 服务端响应的一致

String response = new String(responsebody, "UTF-8");

// 响应数据格式转化获取jsonobject

JSONObject  json = new JSONObject();

json=json.fromObject(response);

String ids=json.getString("id");

String names=json.getString("name");

}catch(HTTPException e){

e.printStackTrace();

}catch(IOException ee){

ee.printStackTrace();

}finally{

// 释放连接

getMethod.releaseConnection();

}

2、接收请求,处理请求以及请求的响应

// 完整的请求路径为:http://localhost:8080/music/user/delete.do    这里使用了springmvc 框架

@RequestMapping(value="/delete.do")

//  这里的id就是请求url后面的那个请求参数,可以有多个请求参数

public void  delete(Integer id,HttpServletResponse response){

System.out.println("请求到达 delete");

Integer yid= id;

System.out.println("请求参数"+yid);

try {

// 获取输出流

OutputStream output= response.getOutputStream();

// 设置编码不然会出现乱码

response.setCharacterEncoding("UTF-8");

// 这里传递一个json 格式数据,

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

// 设置编码

byte [] b= jstring.getBytes("UTF-8");

// 响应,将相应数据返回 client

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

服务器响应数据格式为 JSONArray

1、请求代码:

// 创建 httpclient 对象

HttpClient  httpclient= new HttpClient();

//创建请求方式

GetMethod getMethod = new GetMethod("http://localhost:8080/music/user/delete.do?id=1");

// 响应状态的判断

try{

int status= httpclient.executeMethod(getMethod);

// 200  ok 请求成功,否则请求失败

if(status!=HttpStatus.SC_OK){

System.err.println("Method failed: "

+ getMethod.getStatusLine());

}

// 请求成功,使用string获取响应数据

String info = null;

info = new String(getMethod.getResponseBodyAsString());

// 请求成功,使用 byte数组来获取响应数据

byte[] responsebody= getMethod.getResponseBody();

// 编码要和 服务端响应的一致,而这里的response就是jsonarray 格式的字符串

String response = new String(responsebody, "UTF-8");

// 响应数据格式转化获取JSONArray

JSONArray array= new JSONArray();

array=array.fromObject(response);

// 获取JSONArray 数组中的JSONObject

JSONObject json= new JSONObject();

JSONObject json1= new JSONObject();

}catch(HTTPException e){

e.printStackTrace();

}catch(IOException ee){

ee.printStackTrace();

}finally{

// 释放连接

getMethod.releaseConnection();

}

2、服务器端请求处理,响应代码

// 完整的请求路径url=http://localhost:8080/music/user/delete.do

@RequestMapping(value="/delete.do")

public void  delete(Integer id,HttpServletResponse response){

System.out.println("请求到达 delete");

// 请求参数

Integer yid= id;

System.out.println("请求参数"+yid);

try {

// 获取输出流

OutputStream output= response.getOutputStream();

// 编码设置

response.setCharacterEncoding("UTF-8");

// 这里传递一个json 格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

JSONObject  json1= new JSONObject();

json1.put("id", 11);

json1.put("name", "name1");

// 将jsonobject 放进jsonobject

JSONArray arr= new JSONArray();

arr.add(json);

arr.add(json1);

String jstring= arr.toString();

// 设置编码,如果编码方式不同会出现乱码

byte [] b= jstring.getBytes("UTF-8");

//  请求响应,

output.write(b);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

org.apache.commons.httpclient.HttpClient   post请求来实现,响应返回的数据格式为jsonobject格式

get请求和post请求之后参数的传递不同,其他的流程以及处理方式都是一样的,所以我们这里只写 多个请求参数返回JSONObject 的代码

1、请求代码:

// 创建 httpclient 对象

HttpClient  httpclient= new HttpClient();

//创建请求方式

PostMethod postMethod = new PostMethod("http://localhost:8080/music/user/delete.do");

//参数的设置,get的请求参数在url后面但是post的请求参数在请求主体中,因此这样写

NameValuePair[] data = { new NameValuePair("id","110"),  new NameValuePair("name", "yourName") };

// 将请求参数设置到  请求方法中

postMethod.setRequestBody(data);

// http client 执行这个post请求方法

try{

// 服务器端返回的状态信息

int status= httpclient.executeMethod(postMethod);

if(status!=HttpStatus.SC_OK){

System.err.println("Method failed: "

+ postMethod.getStatusLine());

}

String info = null;

// 获取响应信息

info = new String(postMethod.getResponseBodyAsString());

System.out.println("使用commons 的get方法请求获取的值"+info);

// 获取响应信息

byte[] responsebody= postMethod.getResponseBody();

// 设置编码

String response = new String(responsebody, "UTF-8");

// 如果服务器段返回的是jsonobject格式则可以按照这种方式

JSONObject  json = new JSONObject();

json=json.fromObject(response);

String ids=json.getString("id");

String names=json.getString("name");

System.out.println("id:"+ids +"  name:"+names );

System.out.println("获取内容"+responsebody.toString()+"string 类型"+response);

}catch(HTTPException e){

e.printStackTrace();

}catch(IOException ee){

ee.printStackTrace();

}finally{

// 释放连接

postMethod.releaseConnection();

}

return "index";

}

2、服务器端请求处理,响应代码

@RequestMapping(value="/delete.do")

//  接受post请求参数 id  name

public void  delete(String id,String name,HttpServletResponse response){

System.out.println("请求到达 delete");

String yid= id;

String yname=name;

System.out.println("请求参数"+yid);

System.out.println("请求参数name:"+name);

try {

OutputStream output= response.getOutputStream();

// 编码设置

response.setCharacterEncoding("UTF-8");

// 这里传递一个json 格式数据

JSONObject  json= new JSONObject();

json.put("id", 10);

json.put("name", "name");

String jstring= json.toString();

// 编码设置

byte [] b= jstring.getBytes("UTF-8");

// 信息输出

output.write(b);

} catch (IOException e) {

e.printStackTrace();

}

}

时间: 2024-10-12 12:48:22

HttpUrlconnection 、Httpclient get 、post 请求核心代码的相关文章

org.apache.http.client.HttpClient get/post请求

请求步骤 1.创建httpclient 对象 2.创建 请求方式,构造函数的值为请求路径 3.调用1中对象的execute() 方法,参数为 2 的对象 4.获取请求响应数据 5.释放连接资源 6.处理数据 一.使用org.apache.http.client.HttpClient 的get请求来实现 1.请求核心代码: // 创建 httpclient 对象       HttpClient httpclient = new DefaultHttpClient();    //创建请求方式,因

httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete

httpclient post方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //----1. HttpPost request = new HttpPost(url); // 先封装一个 JSON 对象 JSONObject param = new JSONObject(); param.put("name", "rarnu"); param.put("password", "123456"

Android网络编程 HttpUrlConnection HttpClient AsyncTask

前面几篇文章介绍了Android中常用的http框架:volley,所谓框架者无非就是对我们所需的一系列操作进行了封装,简化了我们的工作. 但万变不离其宗,我们还是需要掌握Android原生的网络操作类,所以这篇文章主要介绍这两个类, HTTPUrlConnection HTTPClient,以及常需要用到的AsyncTask. 本文代码github地址:UseAsyncTask 1,HttpUrlConnection 一个UrlConnection常用来通过网络发送和获取数据,数据可以使任何类

Libgdx: android单机斗地主支持局域网wifi联网的网络模块核心代码

这个作品是我最近写的,结合我的毕业设计的通信模块和之前的单机版斗地主.我已经上架到豌豆荚了,贴了点广告,看看能不能赚点茶钱.可是一点也不乐观.因此我想分享给大家源码.只要不用于商业. 下面先贴网络模块的核心代码,第一次写这种逻辑用的udp, 经验不够,没有写的那么好看. 这里是我上架的apk,大家下载来试试也无妨: 地址 http://www.wandoujia.com/apps/com.hj.joker package com.hj.net; import java.io.ByteArrayI

【转】Darwin Streaming Server 核心代码分析

无意中看到了dqzhangp的一篇博客,分析了DSS的核心架构,读完顿时感觉豁然开朗,茅塞顿开,写得非常的鞭辟入里,言简意赅,我想没有相当的功力是写不出这样的文章的,情不自禁转到自己空间来,生怕弄丢了. 基本概念   首先,我针对的代码是Darwin StreamingServer 6.0.3未经任何改动的版本. DarwinStreaming Server从设计模式上看,采用了Reactor的并发服务器设计模式,如果对Reactor有一定的了解会有助于对DarwinStreaming Serv

Darwin Streaming Server 核心代码分析

基本概念 首先,我针对的代码是Darwin Streaming Server 6.0.3未经任何改动的版本. Darwin Streaming Server从设计模式上看,采用了Reactor的并发服务器设计模式,如果对Reactor有一定的了解会有助于对Darwin Streaming Server核心代码的理解. Reactor模式是典型的事件触发模式,当有事件发生时则完成相应的Task,Task的完成是通过调用相应的handle来实现的,对于handle的调用是由有限个数的Thread来完

微信公众号抢现金红包活动的核心代码分析

红包使用说明及规则,请仔细阅读 (1)必须是认证过的服务号,开通了微信支付功能:在商家后台充足够多的钱来发红包. (2)发送频率规则◆ 每分钟发送红包数量不得超过1800个:◆ 北京时间0:00-8:00不触发红包赠送:(如果以上规则不满足您的需求,请发邮件至[email protected]获取升级指引) (3)红包规则◆ 单个红包金额介于[1.00元,200.00元]之间:◆ 同一个红包只能发送给一个用户:(如果以上规则不满足您的需求,请发邮件至[email protected]获取升级指引

JAVA利用HttpClient进行POST请求(HTTPS)

目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求. 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而JQuery的post请求是不允许跨域的. 这时,就只能够用HttpClient包进行请求了,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. 1.写一个SSLClient类,继承至HttpClient [java] view plain c

Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Android