博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpClient使用post方式模拟表单提交数据到服务器并下载服务器文件
阅读量:3560 次
发布时间:2019-05-20

本文共 2390 字,大约阅读时间需要 7 分钟。

public 
class 
HttpClientPostUtil {
      
       
public 
static 
String  loginGet(String url,String username,String password){
      HttpClient client = 
new 
DefaultHttpClient(); 
//客户端对象
      HttpPost post  = 
new 
HttpPost(url);             
//请求对象
      
      NameValuePair pai1 = 
new 
BasicNameValuePair(
"username"
,username);
      NameValuePair pai2 = 
new 
BasicNameValuePair(
"password"
,password);
      List< NameValuePair>list = 
new 
ArrayList< NameValuePair>();
      list.add(pai1);
      list.add(pai2);
       
try 
{
            HttpEntity entity = 
new 
UrlEncodedFormEntity(list);
//模拟form进行表单提交
             post.setEntity(entity);                               
//banding内容
             HttpResponse response = client.execute(post); 
//连接服务器
             
if
(response.getStatusLine().getStatusCode()==200){
                   HttpEntity entit =  response.getEntity(); 
//获取内容
                   
return 
EntityUtils.toString(entit, 
"utf-8"
);
             }
            
      } 
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();
      }
      
       
return 
""
;
      }
      
       
public 
static 
void 
downFile(String urlStr,String target){
            HttpClient client = 
new 
DefaultHttpClient();
            HttpPost get = 
new 
HttpPost(urlStr);
            FileOutputStream fos= 
null
;
             
try 
{
                  HttpResponse response=client.execute(get);
                   
if
(response.getStatusLine().getStatusCode()==200){
                        HttpEntity entity = response.getEntity();
                         fos = 
new 
FileOutputStream(target);
                         fos.write(EntityUtils. toByteArray(entity));        
//写入到磁盘
                         System. 
out
.println(
"sucess!" 
);
                         
/*
                         InputStream  is = entity.getContent();
                         byte [] b = new byte[1024*800];
                         int tem =0;
                         while(( tem=is.read())!=-1){
                               fos.write(b, 0, tem);
                         }
                         */ 
 
                  }
                  fos.flush();
                  fos.close();
            } 
catch 
(ClientProtocolException e) {
                   
// 
TODO 
Auto-generated catch block
                  e.printStackTrace();
            } 
catch 
(IOException e) {
                   
// 
TODO 
Auto-generated catch block
                  e.printStackTrace();
            }
            
      }
}
测试类
public 
class 
HttpClientPostTest {
       
public 
static 
void 
main(String[] args) {
             
// 
TODO 
Auto-generated method stub
       String url =
"http://localhost:8080/mp3/servlet/HttpClientServlet" 
;
       Scanner s = 
new 
Scanner(System.
in
);
       System. 
out
.println(
"请输入用户名" 
);
       String name = s.next();
       System. 
out
.println(
"请输入密码" 
);
       String password = s.next();
 
       String msg= HttpClientPostUtil. loginGet(url,name,password);
       System. 
out
.println(msg);
//       String str1 = "http://localhost:8080/mp3/aixi.jpg";
//       String target="d:\\aixiPost.jpg";
//       HttpClientPostUtil.downFile(str1, target);
     
      }
}

转载地址:http://dbcrj.baihongyu.com/

你可能感兴趣的文章
淘宝网站的架构演进
查看>>
设置zookeeper开机自启动流程
查看>>
CentOS安装mysql5.7的教详细流程
查看>>
项目整合微信扫码登录功能
查看>>
分布式文件系统FastDfs的搭建
查看>>
Springboot项目利用Java客户端调用FastDFS
查看>>
全文检索工具elasticsearch的安装和简单介绍
查看>>
利用Kibana学习全文检索工具elasticsearch
查看>>
SpringBoot在Test测试类或自定义类中通过@Autowired注入为null
查看>>
使用docker搭建YAPI服务
查看>>
西南科技大学OJ题 邻接表到邻接矩阵1056
查看>>
西南科技大学OJ题 有向图的出度计算1057
查看>>
西南科技大学OJ题 有向图的最大出度计算1059
查看>>
西南科技大学OJ题 带权有向图计算1063
查看>>
oracle主键自增触发器编写
查看>>
String与StringBuilder与StringBuffer三者的差别
查看>>
各种IO流之间的关系和区别
查看>>
SSM如何实现上传单图片
查看>>
SSM环境下java如何实现语音识别(百度语音识别版)
查看>>
ajax方法参数的用法和他的含义
查看>>