zoukankan      html  css  js  c++  java
  • HttpClient get和HttpClient Post请求的方式获取服务器的返回数据

    1.转自:https://blog.csdn.net/alinshen/article/details/78221567?utm_source=blogxgwz4

    /*
     * 演示通过HttpClient get请求的方式获取服务器的返回数据
     */

    1. public class HttpClientDemo {  
    2.     public static void main(String[] args) throws ClientProtocolException, IOException {  
    3.         String path="http://10.0.184.105:58080/ServletDemo4/LoginServlet?username=admin&password=admin";  
    4.         //1.创建客户端访问服务器的httpclient对象   打开浏览器  
    5.         HttpClient httpclient=new DefaultHttpClient();  
    6.         //2.以请求的连接地址创建get请求对象     浏览器中输入网址  
    7.         HttpGet httpget=new HttpGet(path);  
    8.         //3.向服务器端发送请求 并且获取响应对象  浏览器中输入网址点击回车  
    9.         HttpResponse response=httpclient.execute(httpget);  
    10.         //4.获取响应对象中的响应码  
    11.         StatusLine statusLine=response.getStatusLine();//获取请求对象中的响应行对象  
    12.         int responseCode=statusLine.getStatusCode();//从状态行中获取状态码  
    13.         if(responseCode==200){  
    14.             //5.获取HttpEntity消息载体对象  可以接收和发送消息  
    15.             HttpEntity entity=response.getEntity();  
    16.             //EntityUtils中的toString()方法转换服务器的响应数据  
    17.             String str=EntityUtils.toString(entity, "utf-8");  
    18.             System.out.println("服务器的响应是:"+str);  
    19.               
    20. //          //6.从消息载体对象中获取操作的读取流对象  
    21. //          InputStream input=entity.getContent();  
    22. //          BufferedReader br=new BufferedReader(new InputStreamReader(input));  
    23. //          String str=br.readLine();  
    24. //          String result=new String(str.getBytes("gbk"), "utf-8");  
    25. //          System.out.println("服务器的响应是:"+result);  
    26. //          br.close();  
    27. //          input.close();  
    28.         }else{  
    29.             System.out.println("响应失败!");  
    30.         }  
    31.     }  
    32.   
    33.   
    34. }  


    /*
     * 演示HttpClient使用Post提交方式提交数据
     * <form action="" method="post">
     *   <input type="text" name="username" value="输入值">
     *   <input type="password" name="password" value="输入值">
     * </form>
     * 
     *  username=输入值   password=输入值
     */

      1. public class HttpClientDemo4 {  
      2.     public static void main(String[] args) throws ClientProtocolException, IOException {  
      3.         String baseUrl="http://10.0.184.105:58080/ServletDemo4/LoginServlet";//username=? password=?  
      4.         HttpClient httpclient=new DefaultHttpClient();  
      5.         //以请求的url地址创建httppost请求对象  
      6.         HttpPost httppost=new HttpPost(baseUrl);  
      7.           
      8.         //NameValuePair 表示以类的形式保存提交的键值对  
      9.         NameValuePair pair1=new BasicNameValuePair("username", "ad");  
      10.         NameValuePair pair2=new BasicNameValuePair("password", "admin");  
      11.         //集合的目的就是存储需要向服务器提交的key-value对的集合  
      12.         List<NameValuePairlistPair=new ArrayList<NameValuePair>();  
      13.         listPair.add(pair1);  
      14.         listPair.add(pair2);  
      15.         //HttpEntity 封装消息的对象 可以发送和接受服务器的消息  可以通过客户端请求或者是服务器端的响应获取其对象  
      16.         HttpEntity entity=new UrlEncodedFormEntity(listPair);//创建httpEntity对象  
      17.         httppost.setEntity(entity);//将发送消息的载体对象封装到httppost对象中  
      18.           
      19.         HttpResponse response=httpclient.execute(httppost);  
      20.         int responseCode=response.getStatusLine().getStatusCode();  
      21.         if(responseCode==200){  
      22.             //得到服务器响应的消息对象  
      23.             HttpEntity httpentity=response.getEntity();  
      24.             System.out.println("服务器响应结果是:"+EntityUtils.toString(httpentity, "utf-8"));  
      25.         }else{  
      26.             System.out.println("响应失败!");  
      27.         }  
      28.     }  
      29.   
      30.   
  • 相关阅读:
    【DDD】领域驱动设计实践 —— 架构风格及架构实例
    【DDD】领域驱动设计精要
    Zynq UltraScale+ cross compiler
    Platform device/driver注册过程 (转)
    static inline extern等概念
    (int argc, char *argv[]) 指针数组
    linux man 1,2,3 命令
    指针左值错误
    arm ds5 编译选项
    在JTAG菊花链拓扑对设备编程
  • 原文地址:https://www.cnblogs.com/sharpest/p/7773338.html
Copyright © 2011-2022 走看看