导航:首页 > 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文件服务器相关的知识