Linux 下传输文件报错?

这是报错日志,发送一个文件到目标端。之前一直都可以,但是今天一样的程序却发送失败了,求解答。
代码如下:
package com.guoxi;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
/**
 * created by hangli
 */
public class SendFile {
    public static void main(String[] args){
        try{
            /**
             * 发送序号(序号比编号少1)
             */
            int order = 30 ;
            URL startseries = new URL("http://172.28.165.229:8080/startReceive?seri="+order);
            InputStream start = startseries.openStream();
            InputStreamReader st = new InputStreamReader(start);
            BufferedReader bustart = new BufferedReader(st);
            bustart.close();
            st.close();
            start.close();
            /**
             * 发送文件
             */
            String boundary = "Boundary-b1ed-4060-99b9-fca7ff59c113"; //Could be any string
            String Enter = "\r\n";
            File file = new File("/home/admin/demo/hangli/filename31_31.txt");
            FileInputStream fis = new FileInputStream(file);
            URL url = new URL("http://172.28.165.229:8080/uploadimg");
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setRequestMethod("POST");
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary);
            conn.connect();
            DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
            //part 1
            String part1 =  "--" + boundary + Enter
                    + "Content-Type: application/octet-stream" + Enter
                    + "Content-Disposition: form-data; filename=\""+file.getName()+"\"; name=\"file\"" + Enter + Enter;
            //part 2
            String part2 = Enter
                    + "--" + boundary + Enter
                    + "Content-Type: text/plain" + Enter
                    + "Content-Disposition: form-data; name=\"dataFormat\"" + Enter + Enter
                    + "hk" + Enter
                    + "--" + boundary + "--";
            byte[] xmlBytes = new byte[fis.available()];
            fis.read(xmlBytes);
            dos.writeBytes(part1);
            dos.write(xmlBytes);
            dos.writeBytes(part2);
            dos.flush();
            dos.close();
            fis.close();
            System.out.println("status code: "+conn.getResponseCode());
            conn.disconnect();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

参与9

2同行回答

achliceachlice系统工程师h3c
看下目标端 程序 及端口是不是出问题了. 你的目标端是   主机172.28.165.229的 8080 ?在你本地 telnet 测试连接目标的 8080 , 或者ssh指定目标端口 测试连接, 看对端8080是否正常.显示全部

看下目标端 程序 及端口是不是出问题了. 
你的目标端是   主机172.28.165.229的 8080 ?

在你本地 telnet 测试连接目标的 8080 , 或者ssh指定目标端口 测试连接, 看对端8080是否正常.

收起
IT其它 · 2019-10-24
  • 是的呢,是这个目标端ip确实是这个172.28.165.229:8080,我测试了我可以连接到目标端得8080,我感觉可能是我自己的8080端口没有打开
    2019-10-25
  • 理念上上,你自己做为客户端去连接目标的 8080, 与你自己的8080没关系 , 客户端的端口一般是由系统自由分配 的.不要用代码, 手动做一个访问目标的上传测试看是否能成功
    2019-10-28
wangqlwangql系统工程师NULL
报错比较明显,连接被拒绝。1. 查看对端的服务是否启动,netstat查看8080是否处在监听状态2. 检查客户端到服务端之间的网络是否有防火墙,用telnet或nc去测试即可显示全部

报错比较明显,连接被拒绝。

1. 查看对端的服务是否启动,netstat查看8080是否处在监听状态

2. 检查客户端到服务端之间的网络是否有防火墙,用telnet或nc去测试即可

收起
IT咨询服务 · 2019-10-28
浏览2437

提问者

我是限量版
软件开发工程师NXY
擅长领域: 服务器UnixAIX

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-10-24
  • 关注会员:3 人
  • 问题浏览:4927
  • 最近回答:2019-10-28
  • X社区推广