有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HttpsURLConnection POST方法失败。我不知道我是否有正确的writer和/或outputstream writer。对于多部分/formdata

我正在使用多部分/表单数据发送POST请求。我使用了一个将数据存储为csv的文件。文件是person,positon,id。我担心错误可能是没有正确的写入程序,比如Dataoutput stream vs outputstream。我设置回车和换行的方式或者我的任何连接设置都是关闭的。URL是正确的,但最后一个参数要求输入一个文件名,我把它放在内容处理中。我做了这么多改变,但还是无法摆脱这个错误。我只是想知道这件事有没有错。我返回了一个500错误,但这会导致收到此错误:

org。springframework。网状物多部分。MultipartException:无法解析多部分servlet请求;嵌套的例外是java。伊奥。IOException:org。阿帕奇。公猫util。http。文件上传。impl。IOFileUploadException:处理多部分/表单数据请求失败。流意外结束

如有任何建议或更改,将不胜感激

公共静态字符串postFile(字符串url)引发IOException{

      String boundary = "xxxxxxxxxxxxxxxxxxxxxxxxx";

      String charset = "UTF-8";

      String CRLF = "\r\n";

      int boundaryLength = 181;     

      try {

          BufferedReader in = null;

          File userss = new File("bytesExampleCSV.csv");

          URL obj = new URL(url);

          HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();

          conn.setRequestMethod("POST");

          conn.setDoOutput(true);

          conn.setDoInput(true);

          conn.setUseCaches(false);

          conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);

          conn.setRequestProperty("User-Agent",

                    "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36");


          conn.setRequestProperty("Connection", "keep-alive");

          conn.setRequestProperty("Content-Length", String.valueOf((userss.length()) + boundaryLength));

          conn.connect();

          OutputStream output = conn.getOutputStream();

          PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, charset), true);

          try {

               writer.append("--").append(boundary).append(CRLF);

               writer.append("Content-Disposition: form-data; name=\"bytesExampleCSV.csv\"; filename=\""

                         + userss.getName() + "\"").append(CRLF);

               writer.append("Content-Type: text/plain; charset=" + charset).append(CRLF);

               writer.append(CRLF).flush();

               Files.copy(userss, output);

               output.flush();

               // writer.append(CRLF);

               writer.append("--" + boundary + "--").append(CRLF).flush();

               writer.close();

               conn.disconnect();

               System.out.println(output);

          } catch (Exception e) {

               e.printStackTrace();

          }

共 (0) 个答案