url应用

来源:互联网 发布:淘宝官方邀请我上活动 编辑:程序博客网 时间:2024/05/21 10:44

package com.url;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class TestHttpClient2 {

public static void main(String[] args) {    //http://localhost:8080/web1509/LoginServlet    HttpClient client = new DefaultHttpClient();    HttpPost post = new HttpPost("http://localhost:8080/web1509/LoginServlet");    //设置提交的数据实体    List<NameValuePair> list = new ArrayList<>();    list.add(new BasicNameValuePair("uname", "king"));    list.add(new BasicNameValuePair("pwd", "20"));    try {        post.setEntity(new UrlEncodedFormEntity(list, "gbk"));        //发送请求        HttpResponse res = client.execute(post);        //状态码        int code = res.getStatusLine().getStatusCode();        if(code==200){            HttpEntity en= res.getEntity();            String str = EntityUtils.toString(en, "gbk");            System.out.println(str);        }        client.getConnectionManager().shutdown();    } catch (UnsupportedEncodingException e) {        e.printStackTrace();    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}private static void test1() {    //1.创建一个浏览器对象    HttpClient client = new DefaultHttpClient();    //2.创建请求方式的对象是    HttpGet get = new HttpGet("http://localhost:8080/web1509/dog.jpg");    try {        //3.发送请求    HttpResponse res=client.execute(get);        //4.获得状态码        int code = res.getStatusLine().getStatusCode();        if(code==200){            InputStream is =res.getEntity().getContent();            int len =0;            FileOutputStream fos = new FileOutputStream("d:\\cc.jpg");            while((len=is.read())!=-1){                fos.write(len);                fos.flush();            }            fos.close();            is.close();            client.getConnectionManager().shutdown(); //关闭连接            System.out.println("下载成功");        }    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}

}
package com.url;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.Header;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class TestHttpClient {

public static void main(String[] args) throws ClientProtocolException, IOException {    //1.打开浏览器    HttpClient client = new DefaultHttpClient();    //2.输入地址    HttpPost post = new HttpPost("http://localhost:8080/web1509/LoginServlet");    //如果是POST请求,必须指定提交的数据实体    List<NameValuePair> list = new ArrayList<>();    list.add(new BasicNameValuePair("uname", "king"));    list.add(new BasicNameValuePair("pwd", "20"));    post.setEntity(new UrlEncodedFormEntity(list, "gbk"));    //3.回车    HttpResponse res=client.execute(post);    //得到响应状态码    int code = res.getStatusLine().getStatusCode();    if(code==200){        InputStream is = res.getEntity().getContent();        BufferedReader br = new BufferedReader(new InputStreamReader(is));        String line = br.readLine();        System.out.println(line);        br.close();    }}private static void test1() {    //http://localhost:8080/web1509/LoginServlet?uname="+name+"&pwd="+pwd    //1.打开浏览器    HttpClient client = new DefaultHttpClient();    //2.输入地址    String name ="king";    String pwd="20";    HttpGet hg = new HttpGet("http://localhost:8080/web1509/LoginServlet?uname="+name+"&pwd="+pwd);    //3.敲回车    try {    HttpResponse response=client.execute(hg);    int code = response.getStatusLine().getStatusCode(); //得到状态码    if(code==200){        InputStream is = response.getEntity().getContent();        BufferedReader br = new BufferedReader(new InputStreamReader(is));        String line = br.readLine();        System.out.println(line);        br.close();    }    } catch (ClientProtocolException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}

}

package com.url;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class TestUrlHttpConnection {

public static void main(String[] args) {    //一边下载,一边听    //要用两个线程,主线程下载,子线程听    try {        final URL url = new URL("http://localhost:8080/web1509/dog.jpg");        new Thread(new Runnable() {            @Override            public void run() {                //进行下载保存到本地的                DownLoadUtil.saveImage(url, new ShowOk() {                    @Override                    public void showRs(byte[] b) {                        String str = new String(b);                        System.out.println(str);                    }                });            }        }).start();        DownLoadUtil.showImage(url, new ShowOk() {            @Override            public void showRs(byte[] b) {                for (int i = 0; i <b.length; i++) {                    System.out.println(b[i]);                }            }        });    } catch (MalformedURLException e) {        e.printStackTrace();    }}

}

class DownLoadUtil{
public static void saveImage(URL url,ShowOk ok){
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“POST”);
int state = conn.getResponseCode();
if(state==200){
InputStream is = conn.getInputStream();
int len = 0;
FileOutputStream fos = new FileOutputStream(new File(“d:\ss.jpg”));
while((len=is.read())!=-1){
fos.write(len);
fos.flush();
}
fos.close();
is.close();
conn.disconnect();
ok.showRs(“下载到本地成功”.getBytes());
}
} catch (IOException e) {
e.printStackTrace();
}
}

public static void showImage(URL url,ShowOk ok){    try {        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod("POST");        int state = conn.getResponseCode();        if(state==200){            InputStream is = conn.getInputStream();            int len = 0;            ByteArrayOutputStream bos = new ByteArrayOutputStream();            while((len=is.read())!=-1){                bos.write(len);            }            bos.close();            is.close();            conn.disconnect();            ok.showRs(bos.toByteArray());        }    } catch (IOException e) {        e.printStackTrace();    }}

}

//用于提示的接口
interface ShowOk{
void showRs(byte[] b);
}

package com.url;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;

public class URLHttpConnectionDemo {

public static void main(String[] args) {    Scanner in = new Scanner(System.in);    System.out.println("请输入用户名:");    String name = in.next();    System.out.println("请输入密码:");    String pwd = in.next();    try {        //1.创建一个URL对象        URL url = new URL("http://localhost:8080/web1509/LoginServlet?uname="+name+"&pwd="+pwd);        //2.建立程序与资源之间的连接并打开连接        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        //3.设置请求的方式        conn.setRequestMethod("GET");        //4.必须设置操作流的方式,如果要是GET请求,就无需设置        conn.setDoOutput(true);        //6.获是响应状态码        int state = conn.getResponseCode();        //7.判断状态码        if(state==200){            InputStream is = conn.getInputStream();            BufferedReader br = new BufferedReader(new InputStreamReader(is));            String line = br.readLine();            System.out.println("服务器端的响应:"+line);            br.close();        }        conn.disconnect();    } catch (MalformedURLException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}private static void test2() {    Scanner in = new Scanner(System.in);    System.out.println("请输入用户名:");    String name = in.next();    System.out.println("请输入密码:");    String pwd = in.next();    try {        //1.创建一个URL对象        URL url = new URL("http://localhost:8080/web1509/LoginServlet");        String param = "uname="+name+"&pwd="+pwd;        //2.建立程序与资源之间的连接并打开连接        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        //3.设置请求的方式        conn.setRequestMethod("POST");        //4.必须设置操作流的方式,如果要是GET请求,就无需设置        conn.setDoOutput(true);        //5.往服务器写内容,一定要放在获得状态码前        OutputStream os = conn.getOutputStream(); //获得输出流        os.write(param.getBytes()); //往服务器写        os.flush();        //6.获是响应状态码        int state = conn.getResponseCode();        //7.判断状态码        if(state==200){            InputStream is = conn.getInputStream();            BufferedReader br = new BufferedReader(new InputStreamReader(is));            String line = br.readLine();            System.out.println("服务器端的响应:"+line);            br.close();        }        os.close();        conn.disconnect();    } catch (MalformedURLException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}private static void test1() {    try {        //从指定的服务器上下载图片        String address = "http://localhost:8080/web1509/dog.jpg";        //1.通过地址构建一个URL对象        URL url = new URL(address);        //2.建立程序与资源之间的连接        HttpURLConnection conn= (HttpURLConnection) url.openConnection();        //3.设置请求的方式        conn.setRequestMethod("GET");        //4.设置可以读取服务的内容,默认就是可以读取的        conn.setDoInput(true); //默认就是true        //5.获得一下服务器响应的状态,看有没有连接成功        int state = conn.getResponseCode();        FileOutputStream fos = null;        //6.判断状态码的值,如果是200,表示连接成功,可以进行下载        if(state==conn.HTTP_OK){            //7.获得输入流            InputStream is = conn.getInputStream();            int len = 0;            fos = new FileOutputStream(new File("d:\\dog.jpg"));            while((len=is.read())!=-1){                fos.write(len);                fos.flush();            }            //8.释放资源            fos.close();            is.close();            conn.disconnect(); //断开连接            System.out.println("下载成功");        }    } catch (MalformedURLException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}

}

0 0