day20
来源:互联网 发布:vs2010 编译php扩展 编辑:程序博客网 时间:2024/05/22 00:53
doGet 直接连接在url后边是显示的
doPost 隐式的,比get安全
HttpUrlConnection 是sun公司封装成的网络连接
HttpClient 是apache使用HttpUrlConnection封装的类
Android 中volley asyncHttp xutils
doGet
import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JButton;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ConnectException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.SocketTimeoutException;import java.net.URL;import java.net.URLConnection;import java.awt.event.ActionEvent;public class UrlFrame extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { UrlFrame frame = new UrlFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public UrlFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton btnNewButton = new JButton("doGet测试"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String urlString = "http://localhost:8080/MyServerTestDay19/ServerLetTest?username=张三&password=321654"; try { URL url = new URL(urlString); URLConnection connect = url.openConnection();//连接url //强制转换 HttpURLConnection httpConnection = (HttpURLConnection)connect; //设置请求方法 httpConnection.setRequestMethod("GET"); //设置连接超时时间 httpConnection.setConnectTimeout(3000); //设置读取时间超时 httpConnection.setReadTimeout(3000); //设置编码格式和可接受的数据类型 httpConnection.setRequestProperty("Accept-Charset", "utf-8"); //设置可接受的java对象 httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); int code = httpConnection.getResponseCode(); System.out.println("Http状态码:"+code); if(code==HttpURLConnection.HTTP_OK){ InputStream in = httpConnection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line= br.readLine(); while(line!=null){ System.out.println(line); line = br.readLine(); } } } catch (SocketTimeoutException e){ System.out.println("连接超时"); } catch (ConnectException e){ System.out.println("服务器拒绝连接"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btnNewButton.setBounds(117, 85, 181, 92); contentPane.add(btnNewButton); }}
运行结果:
doPost
import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JButton;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ConnectException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.SocketTimeoutException;import java.net.URL;import java.net.URLConnection;import java.awt.event.ActionEvent;public class DoPostTest extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DoPostTest frame = new DoPostTest(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DoPostTest() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton btnDopost = new JButton("doPost测试"); btnDopost.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String urlString = "http://localhost:8080/MyServerTestDay19/ServerLetTest"; try { URL url = new URL(urlString); URLConnection connect = url.openConnection();//连接url //强制转换 HttpURLConnection httpConnection = (HttpURLConnection)connect; //设置请求方法 httpConnection.setRequestMethod("POST"); //设置连接超时时间 httpConnection.setConnectTimeout(3000); //设置读取时间超时 httpConnection.setReadTimeout(3000); //设置编码格式和可接受的数据类型 httpConnection.setRequestProperty("Accept-Charset", "utf-8"); //设置可接受的java对象 httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); //设置可以读取服务器返回的内容 httpConnection.setDoInput(true); //设置客户端可以给服务器提交数据 httpConnection.setDoOutput(true); //post方法不允许缓存 httpConnection.setUseCaches(false); String params = "username=zhangsan&password=654465321"; httpConnection.getOutputStream().write(params.getBytes()); int code = httpConnection.getResponseCode(); System.out.println("Http状态码:"+code); if(code==HttpURLConnection.HTTP_OK){ InputStream in = httpConnection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line= br.readLine(); while(line!=null){ System.out.println(line); line = br.readLine(); } } } catch (SocketTimeoutException e){ System.out.println("连接超时"); } catch (ConnectException e){ System.out.println("服务器拒绝连接"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btnDopost.setBounds(65, 53, 306, 150); contentPane.add(btnDopost); }}
运行结果:
HttpClientDoGet
import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.HttpClientBuilder;import javax.swing.JButton;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.util.concurrent.TimeUnit;import java.awt.event.ActionEvent;public class HttpClientDoGet extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { HttpClientDoGet frame = new HttpClientDoGet(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public HttpClientDoGet() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton btnDogethttp = new JButton("doGetHttp"); btnDogethttp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String urlString = "http://localhost:8080/MyServerTestDay19/ServerLetTest?username=张三&password=321654"; HttpClientBuilder builder = HttpClientBuilder.create(); builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS); //生成client的builder HttpClient client = builder.build();//生成client HttpGet get = new HttpGet(urlString);//设置为get方法 get.setHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); //设置服务器的读取方式为UTF-8 try { HttpResponse response = client.execute(get);//执行get方法得到服务器的返回的所有数据都在response中 StatusLine statusLine = response.getStatusLine();//httpClient访问服务器返回的表头,包含http状态码 int code = statusLine.getStatusCode();//得到状态码 if(code==HttpURLConnection.HTTP_OK){ HttpEntity entity = response.getEntity();//得到数据实体 InputStream in = entity.getContent();//得到输入流 BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line = br.readLine(); while(line!=null){ System.out.println(line); line = br.readLine(); } } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btnDogethttp.setBounds(62, 61, 300, 139); contentPane.add(btnDogethttp); }}
运行结果:
HttpClientDoPost
import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.xml.ws.Response;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.message.BasicNameValuePair;import javax.swing.JButton;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.concurrent.TimeUnit;import java.awt.event.ActionEvent;public class HttpClientDoPost extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { HttpClientDoPost frame = new HttpClientDoPost(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public HttpClientDoPost() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton btnNewButton = new JButton("doPostTest"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String url = "http://localhost:8080/MyServerTestDay19/ServerLetTest"; HttpClientBuilder builder = HttpClientBuilder.create(); builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS); HttpClient client = builder.build(); HttpPost post = new HttpPost(url); NameValuePair pair1 = new BasicNameValuePair("username", "zhangsan"); NameValuePair pair2 = new BasicNameValuePair("password", "123456"); ArrayList<NameValuePair> params = new ArrayList<>(); params.add(pair1); params.add(pair2); try { post.setEntity(new UrlEncodedFormEntity(params,"UTF-8")); post.setHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"); HttpResponse response = client.execute(post); int code = response.getStatusLine().getStatusCode(); if(code==200){ HttpEntity enity = response.getEntity(); InputStream in = enity.getContent(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line = br.readLine(); while(line!=null){ System.out.println(line); line = br.readLine(); } } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); btnNewButton.setBounds(184, 108, 93, 23); contentPane.add(btnNewButton); }}
运行结果:
0 0
- day20
- day20
- Day20
- day20
- DAY20
- day20-笔记
- day20 Io
- day20:Echarts02
- day20笔记
- 传智播客学习日记Day20
- 字节流(day20)
- iOS study Day20-UIView
- day20,page40,total420+295
- java学习day20
- java学习day20
- Day20-列表控件
- day20/FileDemo1.java
- day20/FileDemo3.java
- 关于CABAC熵编码一些问题的研究
- 正则表达式中的特殊字符
- Machine Learning “for Dummies” (Part 1)
- Chrome上最好用的广告拦截插件:AdBlock
- 君と彼女の恋
- day20
- house robber
- iOS-数据库sqlite的使用
- Hadoop中的HDFS学习
- 黑马程序员Java学习笔记之多线程(并发)
- 曝刘亦菲奢华豪宅 面积堪比4个足球场,有钱就是这么任性!
- bzoj 1503: [NOI2004]郁闷的出纳员 (伸展树)
- FZU 1848 – ZeroZeroZeros (找规律+二分)
- 如何将DrawerLayout显示在ActionBar/Toolbar和status bar之间