java中模拟提交表单登录等

post提交表单

导入httpclient包

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.http.NameValuePair;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
public void postForm() {
        // 创建默认的httpClient实例.
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 创建httppost
        HttpPost httppost = new HttpPost("http://vod.syau.edu.cn");
        // 创建参数队列
        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
        formparams.add(new BasicNameValuePair("username", "admin"));
        formparams.add(new BasicNameValuePair("password", "123456"));
        UrlEncodedFormEntity uefEntity;
        try {
            uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
            httppost.setEntity(uefEntity);
            System.out.println("executing request " + httppost.getURI());
            CloseableHttpResponse response = httpclient.execute(httppost);
            try {
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    System.out.println("--------------------------------------");
                    System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));
                    System.out.println("--------------------------------------");
                }
            } finally {
                response.close();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接,释放资源
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

get请求页面HTML

	//get请求获得页面
    public String getHtml(String url){
        CloseableHttpClient httpClient = ReturnObject.httpClient;
        HttpGet httpGet = new HttpGet(url);

        CloseableHttpResponse response = null;
        try {
            response = httpClient.execute(httpGet);
        } catch (IOException e) {
            e.printStackTrace();
        }

        HttpEntity entity = response.getEntity();
        try {
            return EntityUtils.toString(entity,"utf-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

模拟浏览器发送get请求登录

public void method(){
	//1.生成httpclient,相当于该打开一个浏览器
    CloseableHttpClient httpClient1 = httpclient;
    CloseableHttpResponse response1 = null;
    //2.创建get请求,相当于在浏览器地址栏输入 网址
    HttpGet request = new HttpGet("http://210.47.163.27:9002/gradeLnAllAction.do?type=ln&oper=lnfaqk&flag=zx");
    try {
       //3.执行get请求,相当于在输入地址栏后敲回车键
        response1 = httpClient1.execute(request);

        //4.判断响应状态为200,进行处理
        if(response1.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        //5.获取响应内容
        HttpEntity httpEntity = response1.getEntity();
        String html = EntityUtils.toString(httpEntity, "GBK");
        System.out.println(html);
        } else {
        //如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略
        System.out.println("返回状态不是200");
        System.out.println(EntityUtils.toString(response1.getEntity(), "utf-8"));
                    }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
             e.printStackTrace();
         } finally {
        //6.关闭
         HttpClientUtils.closeQuietly(response1);
          HttpClientUtils.closeQuietly(httpClient1);
       }
}
发布了52 篇原创文章 · 获赞 10 · 访问量 9195
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章