Java 无法将字节数组发送到控制器

Java 无法将字节数组发送到控制器,java,post,Java,Post,我试图通过base64编码字符串将文件字节从客户端发送到控制器。 我可以发送较小尺寸的正常字符串。但当我尝试发送长字符串(base64二进制编码)时,在服务器端得到null。请引导我。 我的服务器端和客户端代码如下 在客户端 try{ byte[] getBytes = Files.readAllBytes(Paths.get("C:/Sample/123.csv")); byte[] enc = Base64.encodeBase64(getBytes);

我试图通过base64编码字符串将文件字节从客户端发送到控制器。 我可以发送较小尺寸的正常字符串。但当我尝试发送长字符串(base64二进制编码)时,在服务器端得到null。请引导我。 我的服务器端和客户端代码如下

在客户端

try{
        byte[] getBytes = Files.readAllBytes(Paths.get("C:/Sample/123.csv"));

        byte[] enc = Base64.encodeBase64(getBytes);  
        String encodedString = new String(enc);
 String urlParameters  = "param1="+encodedString+"&param2=virendra";
 byte[] postData       = urlParameters.getBytes( StandardCharsets.UTF_8 );
        int    postDataLength = postData.length;
        System.out.println(postDataLength);
        String request        = "http://localhost:9090//getSingerDetails";
        URL    url            = new URL( request );
        HttpURLConnection conn= (HttpURLConnection) url.openConnection();           
        conn.setDoOutput( true );
        conn.setInstanceFollowRedirects( false );
        conn.setRequestMethod( "POST" );
        conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded"); 
        conn.setRequestProperty( "charset", "utf-8");
        conn.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
        conn.setUseCaches( false );
        try( DataOutputStream wr = new DataOutputStream( conn.getOutputStream())) {
           wr.write( postData );
        }
        System.out.println("Response Code FOR bulkDataUpload : "+conn.getResponseCode());
    }
            catch(Exception e){
                e.printStackTrace();

            }
服务器端代码

@RequestMapping(value = "/getSingerDetails", method = RequestMethod.POST)
        public @ResponseBody JsonResponse seeding2BackendTrans (Map<String, String> map, HttpSession session,   
                @RequestParam Map<String,Object> param ) throws IOException {

            System.out.println("param1-->"+String.valueOf(param.get("param1")));
            System.out.println("param2-->"+String.valueOf(param.get("param2")));
@RequestMapping(value=“/getSingerDetails”,method=RequestMethod.POST)
public@ResponseBody JsonResponse seeding2BackendTrans(映射映射,HttpSession会话,
@RequestParam映射参数)引发IOException{
System.out.println(“param1-->”+String.valueOf(param.get(“param1”));
System.out.println(“param2-->”+String.valueOf(param.get(“param2”));
我得到的是param1的值,param2为null。 但当我通过静态值编码字符串时,我得到了正确的输出。 请帮忙


谢谢

看一看相同类型的问题:看一看相同类型的问题: