導航:首頁 > IDC知識 > javahttp文件伺服器

javahttp文件伺服器

發布時間:2021-01-06 06:47:14

1、java http 傳送文件到另一個台伺服器並接收,還有別的參數要傳,請問怎麼實現?

socket吧,具體網路好了

2、Java編程如何將A伺服器中的文件發送到B伺服器的指定文件夾。急急急求大神直接附上詳細代碼,非常感謝你了

給一種方式做參考,我這邊類似。是將A作為客戶端,上傳文件到伺服器,伺服器B以struts接受請求做處理。使用httpclient。

/**
     * 將文件上傳到服務端,並接收其返回信息
     * @param client DefaultHttpClient
     * @param url 伺服器url:如:http://localhost:8080/test/upload.action
     * @param filePath 文件路徑
     * @param params 上傳參數
     * @param encode 編碼集,主要用來解析返回的response中的信息
     * @return    解析出的返回信息,如伺服器那邊的成功提示:「success」
     */
    public static String sendHttpClientPostToUpload(DefaultHttpClient client, String url, String filePath, 
     Map<String, String> params, String encode){
    
     MultipartEntity mpEntity = new MultipartEntity();
        if (params != null && !params.isEmpty()) {
            for (Map.Entry<String, String> entry : params.entrySet()) {
                // 參數名
                StringBody par;
try {
par = new StringBody(entry.getValue().toString());
mpEntity.addPart(entry.getKey(), par);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
            }
        }
        
        // 圖片
        if (!filePath.equals("")) {
            FileBody file = new FileBody(new File(filePath));
            mpEntity.addPart("file", file);
        }
        
        // 使用HttpPost對象設置發送的URL路徑
        HttpPost post = new HttpPost(url);
        
        post.setEntity(mpEntity);
        
        // 創建一個瀏覽器對象,以把POST對象向伺服器發送,並返回響應消息
        try {
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            // 封裝了伺服器端返回的數據
            HttpEntity responseEntity = response.getEntity();
            
            //*******這里是對伺服器返回的session進行記錄的操作,以獲取sessionId
//             CookieStore mCookieStore = ((DefaultHttpClient) client).getCookieStore();
//             List<Cookie> cookies = mCookieStore.getCookies();
//             for (int i = 0; i < cookies.size(); i++) {
//                 // 如果cookies頭和"JSESSIONID" 就記錄sessionID
//                 if ("JSESSIONID".equals(cookies.get(i).getName())) {
//                     String sessionId = cookies.get(i).getValue();
//                     break;
//                 }
//             }
            //*******完成
            
            InputStream is = responseEntity.getContent();
            
            return changeInputStream(responseEntity.getContent(), encode);
        }
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
        
        
     return "";
    }/**
     * 
     * @param inputStream
     * @param encode
     * @return
     */
    private static String changeInputStream(InputStream inputStream,
            String encode) {
 
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        int len = 0;
        byte[] date = new byte[1024];
        String result = "";
        try {
 
            while ((len = inputStream.read(date)) != -1) {
 
                outputStream.write(date, 0, len);
            }
            result = new String(outputStream.toByteArray(), encode);
             
            return result;
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        return null;
    }

需要的參數client,new 一個就可以了。

DefaultHttpClient client = new DefaultHttpClient();

類似參考網上有很多,不過大都是你轉載他得,他轉載你的,能用的不多。

3、Java編寫程序,用於下載HTTP伺服器上的某個文件

發送http請求,獲得二進制流,然後用outputstream輸出成對應文件格式就行了

4、Http數據頭問題,java中自己編寫http伺服器,發送文件的數據頭要用content-leng

是不是數據類型對應?content-length我不知道沒用過,但是file的length方法返回的是byte的long類型,,,

5、使用Java開發一個HTTP伺服器,能夠處理POST,GET,PUT,DELETE請求。

使用Java開發一個HTTP伺服器,能夠處理POST,GET,PUT,DELETE請求。
1. 監聽埠可以配置;
2. 可以配置的一個工作目錄;
3. GET請求可以獲得相對於該工作目錄的靜態文件的內容,內容格式限定為html,css,js,json,xml,txt,jpg,gif,png,ico;
a) 例如 GET /f/test1.html返回工作目錄下f文件夾下test1.html內容;
b) 在GET請求的的應答中盡可能多的在HTTP頭中返回些能獲得的到的標準的頭信息;
4. POST請求可以在工作目錄中創建請求路徑對應的文件,文件內容為POST請求的內容;
a) 例如 POST /f/test2.html,在工作目錄下f文件夾下創建test2.html文件,並將POST內容作為test2.html的內容。
5. PUT請求可以替換對應路徑的文件,修改的內容為PUT請求的內容。注意與POST不同。
a) 例如 PUT /f/test2.html,在工作目錄下f文件夾替換test2.html文件的內容,並將PUT內容作為test2.html的內容。
6. DELET請求可以刪除對應路徑的文件。
a) 例如 PUT /f/test2.html,在工作目錄下f文件夾刪除test2.html文件。
7. POST,PUT,DELETE成功後返回200,出現找不到文件的情況返回404錯誤,出現讀寫文件錯誤返回500錯誤。
8. 特別的處理~路徑下的GET請求,其包含2個參數,一個是類名,一個是方法名,這些方法都是些無參數並且以字元串為返回值的方法,GET請求應返回這些方法的返回值。
a) 例如 GET /~?class=com.test.Test&method=getTIme,則調用com.test.Test類中String getTIme()方法,將返回值作為GET請求的返回;
b) 若找不到類或方法返回404錯誤;
c) 若出錯返回500錯誤;
9. 特別的處理$路徑下的GET請求,能夠為瀏覽器添加cookie,key為sid,值為UUID的隨機字元串。
注意:不是在tomcat之類servlet容器上開發,而是要開發個類似servlet容器的東西。

6、java 按照HTTP協議 從客戶端向伺服器發送文件,或者發送請求。 伺服器會對應給出不同處理。

tomcat就是干這種事兒的!

7、java http伺服器有哪些功能

HTTP是個大協議,完整功能的HTTP伺服器必須響應資源請求,將URL轉換為本地系統的資源名。響應各種形式的HTTP請求(GET、POST等)。處理不存在的文件請求,返回各種形式的狀態碼,解析MIME類型等。但許多特定功能的HTTP伺服器並不需要所有這些功能。例如,很多網站只是想顯示「建設中「的消息。很顯然,Apache對於這樣的網站是大材小用了。這樣的網站完全可以使用只做一件事情的定製伺服器。Java網路類庫使得編寫這樣的單任務伺服器輕而易舉。

定製伺服器不只是用於小網站。大流量的網站如Yahoo,也使用定製伺服器,因為與一般用途的伺服器相比,只做一件事情的伺服器通常要快得多。針對某項任務來優化特殊用途的伺服器很容易;其結果往往比需要響應很多種請求的一般用途伺服器高效得多。例如,對於重復用於多頁面或大流量頁面中的圖標和圖片,用一個單獨的伺服器處理會更好(並且還可以避免在請求時攜帶不必要的Cookie,因而可以減少請求/響應數據,從而減少下載帶寬,提升速度);這個伺服器在啟動時把所有圖片文件讀入內存,從RAM中直接提供這些文件,而不是每次請求都從磁碟上讀取。此外,如果你不想在包含這些圖片的頁面請求之外單獨記錄這些圖片,這個單獨伺服器則會避免在日誌記錄上浪費時間。

本篇為大家簡要演示三種HTTP伺服器:
(1) 簡單的單文件伺服器
(2) 重定向伺服器
(3) 完整功能的HTTP伺服器

8、客戶端(C#)通過HTTP協議怎麼向伺服器端(java)傳送文件(常用的是圖片) ,伺服器端又怎麼解析?

如果是http協議,c#端完全可以是有,webhttprequest的類來完成想伺服器的信息或者文件回傳遞。
你可以找一下這個答類的使用方法。還是比較容易的。
該類在system.net命名空間里。

至於伺服器端java,那就像一般網頁接受表單post來的file一樣接收就行了。

9、java怎樣讀取http文件伺服器上的文件列表並下載?

文件名不寫死,可以用 File f = new File("存文件的目錄");

調用 String f_names[] = f.list()顯示該目錄下的所有文件

根據路徑版和文件名就可權以得到相應的文件鏈接了,也就可以將其下載下來了。

與javahttp文件伺服器相關的知識