2015-12-02 71 views
0

我只是从附近的StackOverflow上的社区中寻求帮助,使用Java中的REST API上传XML或CSV文件。使用Java中的Rest Api上传XML/CSV文件

网址:

Remote Address:127.0.0.1:8080 
Request URL:http://localhost:8080/HSMV5/api/import 
Request Method:POST 

请求Playload:

------WebKitFormBoundaryTnLhEykB6lreFMtz 
Content-Disposition: form-data; name="aaaa.xml"; filename="aaaa.xml" 
Content-Type: text/xml 


------WebKitFormBoundaryTnLhEykB6lreFMtz-- 

这里是我的源代码:

@Path("/") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes({ MediaType.APPLICATION_JSON, MediaType.MULTIPART_FORM_DATA }) 
public class Dispatcher { 
    @POST 
    @Path("/import") 
    public Response importpostFile(
      @FormDataParam("file") InputStream uploadedInputStream, 
      @FormDataParam("file") FormDataContentDisposition fileDetail) 
      throws HsmRestServiceException { 
     System.out.println(fileDetail.getFileName()); 
     return importFile.doPost(null); 
    } 

} 

在编译变量返回null:

uploadedInputStream : null 
fileDetail : null 

回答

0
  1. 名称(name="aaaa.xml")需要与@FormDataParam中的值相同。这就是为什么它是空的,因为它是错误的名称。有没有名字的任何一部分file

  2. 我没有看到任何资料。数据应显示在这些行之间。

    Content-Type: text/xml 
    
    
    ------WebKitFormBoundaryTnLhEykB6lreFMtz-- 
    

    这也是你需要弄清楚的。

+0

感谢你的回答我昨天了解,从形式的name属性来的问题。 这里是在顶部使用的形式 – yougho

0

这里的形式使用:

 <tr class="pairRowTab"> 
      <td> 
       <bean:message key="table.dateFormat"/> 
      </td> 
      <td> 
       <html:file property="dateFormatFile" size="70"/> 
      </td> 
     </tr> 
     <tr class="impairRowTab"> 
      <td> 
       <bean:message key="table.separateur"/> 
      </td> 
      <td> 
       <html:file property="separateurFile" size="70"/> 
      </td> 
     </tr>