• Http进行网络通信


    http使用get的方式进行网络通信:

    package com.testGet;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    /**
     * 使用Http的Get方式读取网络数据
     */
    public class TestGet {
        public static void main(String[] args) {
            new ReadByGet("welcome").start();
        }
    }
    class ReadByGet extends Thread{
        private String str;
        public ReadByGet(String str){
            this.str=str;
        }
        @Override
        public void run() {
            try {
                
                
                
                URL url=new URL("http://fanyi.youdao.com/openapi.do?keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q="+str);
                URLConnection connection=url.openConnection();//打开链接
                InputStream is=connection.getInputStream();//获取输入流
                InputStreamReader isr=new InputStreamReader(is,"UTF-8");
                BufferedReader br=new BufferedReader(isr);
                
                String line;
                StringBuilder builder=new StringBuilder();
                while((line=br.readLine())!=null){
                    builder.append(line);
                }
                br.close();
                isr.close();
                is.close();
                System.out.println(builder);
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    View Code

    http使用post的方式进行网络通信:

    package com.testPost;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    /**
     * 使用Http的Post方式与网络交互通信
     * @author Administrator
     *
     */
    public class TestPost {
        public static void main(String[] args) {
            new ReadByPost().start();
        }
    }
    class ReadByPost extends Thread{
        @Override
        public void run() {
            try {
                
                URL url=new URL("http://fanyi.youdao.com/openapi.do");
                HttpURLConnection connection=(HttpURLConnection) url.openConnection();//Post使用的是HttpURLConnection
                connection.addRequestProperty("encoding", "utf-8");
                //打开输入输出通道
                connection.setDoInput(true);
                connection.setDoOutput(true);
                
                OutputStream os=connection.getOutputStream();
                OutputStreamWriter osw=new OutputStreamWriter(os);
                BufferedWriter bw=new BufferedWriter(osw);
                
                bw.write("keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q=welcome");
                bw.flush();
                
                InputStream is=connection.getInputStream();
                InputStreamReader isr=new InputStreamReader(is);
                BufferedReader br=new BufferedReader(isr);
                
                String line;
                StringBuilder builder=new StringBuilder();
                while((line=br.readLine())!=null){
                    builder.append(line);
                }
                bw.close();
                osw.close();
                os.close();
                br.close();
                isr.close();
                is.close();
                
                System.out.println(builder);
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    View Code

    httpClient使用get方式进行网络通信:

    package com.testClientGet;
    
    import java.io.IOException;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    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.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    
    
    /**
     * 使用HttpClient进行Get方式通信
     * @author Administrator
     *
     */
    public class ClientGet {
        public static void main(String[] args) {
            new Get().start();
        }
    }
    class Get extends Thread{
        HttpClient client=HttpClients.createDefault();
        
        @Override
        public void run() {
            HttpGet get=new HttpGet("http://www.baidu.com");
            try {
                
                HttpResponse response=client.execute(get);
                HttpEntity entity=response.getEntity();
                String result=EntityUtils.toString(entity,"utf-8");
                
                System.out.println(result);
                
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }
    View Code

    httpClient使用post方式进行网络通信:

    package com.testClientPost;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    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.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    /**
     * 使用HttpClient进行Post方式通信
     * @author Administrator
     *
     */
    public class TestPost {
        public static void main(String[] args) {
            //http://fanyi.youdao.com/openapi.do
            //keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q=welcome
            new Post().start();
        }
    }
    class Post extends Thread{
        HttpClient client=HttpClients.createDefault();
        
        @Override
        public void run() {
            HttpPost post=new HttpPost("http://fanyi.youdao.com/openapi.do");
            try {
                //Post需要请求参数
                //keyfrom=guodaxia&key=1142217390&type=data&doctype=xml&version=1.1&q=welcome
                List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
                parameters.add(new BasicNameValuePair("keyfrom", "guodaxia"));
                parameters.add(new BasicNameValuePair("key", "1142217390"));
                parameters.add(new BasicNameValuePair("type", "data"));
                parameters.add(new BasicNameValuePair("doctype", "xml"));
                parameters.add(new BasicNameValuePair("version", "1.1"));
                parameters.add(new BasicNameValuePair("q", "welcome"));
                post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
                HttpResponse response=client.execute(post);
                HttpEntity entity=response.getEntity();
                String result=EntityUtils.toString(entity,"utf-8");
                
                System.out.println(result);
                
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    View Code

    注意:

    我这里使用的httpClient是4.3.5版本的

    有道翻译api信息在我的邮箱中

  • 相关阅读:
    Message Flood SDUT 1500
    SDUT1482——二元多项式
    SDUT—2057 模拟题
    Eight(bfs+全排列的哈希函数)
    Pick-up sticks(判断两条线段是否相交)
    poj 1265 Area(pick定理)
    poj 2503 Babelfish(字典树哈希)
    poj 3007 Organize Your Train part II(静态字典树哈希)
    Surprising Strings(map类)
    Strange Way to Express Integers (一般模线性方程组)
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5666865.html
Copyright © 2020-2023  润新知