HttpClient使用post方式模擬表單提交資料到伺服器並下載伺服器檔案
阿新 • • 發佈:2019-01-03
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);
}
}