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();
}
}
请求步骤
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();
一、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");