要下載jar包import java.io.FileOutputStream;import java.io.IOException;import org.apache.http.HttpEntity;import org.apache.http.HttPResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;/* * 模擬下載 * 使用到的類: * 1.HttpClient: * 2.HttpResponse * 3.HttpEntity * 4.EntityUtils * */public class HttpDemo1 { public static void main(String[] args) throws IOException { // HttpClient:創建了客戶端。 HttpClient client = new DefaultHttpClient(); // 請求 get:HttpGet String path = "http://www.baidu.com/img/bdlogo.gif"; HttpGet get = new HttpGet(path); // 讓客戶端執行請求。 HttpResponse response = client.execute(get); // 數據全部在HttpResponse // 1:響應碼。 int code = response.getStatusLine().getStatusCode(); if(code == 200){ // 取出返回的數據。 數據封裝到HttpEntity對象。 HttpEntity entity = response.getEntity(); // 如何獲得HttpEntity對象中的數據。 byte[] b = EntityUtils.toByteArray(entity); FileOutputStream fos = new FileOutputStream("e://bb.gif"); fos.write(b); fos.flush(); fos.close(); } }}
import java.io.File;import java.io.IOException;import java.nio.charset.Charset;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.HttpPost;import org.apache.http.entity.mime.FormBodyPart;import org.apache.http.entity.mime.MultipartEntity;import org.apache.http.entity.mime.content.FileBody;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;
/* * 使用的類: * HttpClient * HttpPost * FileBody * FormBodyPart * MultipartEntity * HttpResponse * EntityUtils * */
public class HttpDemo5 { public static void main(String[] args) throws ClientProtocolException, IOException { //1:創建HttpClient 對象(創建客戶端) HttpClient client = new DefaultHttpClient(); //2:創建請求方式(web中的請求方式method) String uri = "http://localhost:8080/FileUpload/FileUploadServlet"; HttpPost post = new HttpPost(uri); //3:包裝要發送的數據(文件) //3.1:獲取本地的文件 File file = new File("e://aa.jpg"); //3.2:創建FileBody對象(文件主體) FileBody fileBody = new FileBody(file); //3.3:創建FormBodyPart 對象(表單主體部分) FormBodyPart part = new FormBodyPart("form", fileBody); //4:創建MultipartEntity對象。MultipartEntity:多部件實體 MultipartEntity entity = new MultipartEntity(); //5:把表單主體部分添加到多部件實體中(將文件類型的數據添加到entity中) entity.addPart(part); //5:將普通文本數據添加到多部件實體中 entity.addPart("username", new StringBody("哈哈", "text/html", Charset.forName("utf-8"))); entity.addPart("passWord", new StringBody("123")); //6:設置請求的實體 post.setEntity(entity); //7:讓客戶端執行請求(帶有數據的請求),得到的是HttpResponse對象(響應對象) HttpResponse response = client.execute(post); //8:通過響應對象獲取響應碼 int code = response.getStatusLine().getStatusCode(); //9:如果響應碼為200(成功響應碼),則獲取服務器返回的數據 if(code == 200){ //9.1:獲取HttpEntity對象(通過響應來獲?。? HttpEntity entity2 = response.getEntity(); //10:使用EntityUtils工具類,將獲取到的數據(實體)轉換為字節數組形式,任何文件都可以以字節的形式保存 byte[] b = EntityUtils.toByteArray(entity2); //輸出內容 System.out.println(new String(b, "utf-8")); } }}
新聞熱點
疑難解答