Java Post 带有来自 Bean 的附件 JAX-RS 的方法
Java Post Method with Attachment JAX-RS from Bean
我有一个电子邮件 Web 服务 - 工作正常 - 现在我需要添加附件。
1.How 我是否在我的 post 方法中编写 @FormParam 来接收 byte[]?
2.How 我是否将我的 bean 写为 addParam 以添加文件?
我的bean是这样的:
public String sendEmail() throws IOException{
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
String ip = req.getRemoteAddr();
String conteudo = "é ô ç $ & / { [";
List<byte[]> att = new ArrayList<byte[]>();
String request = "myURI";
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(request);
method.getParams().setContentCharset("utf-8");
method.addParameter("conteudo", conteudo);
method.addParameter("ip", ip);
return "sendEmail ok";
}
我的POST方法是这样的:
@POST
@Path("/sendEmail")
@Consumes({"application/json","application/x-www-form-urlencoded",})
public String sEmail(@FormParam("conteudo") String conteudo, @FormParam("ip") String ip)throws MessagingException {
String de = "de@mail.com.br";
String para = "para@rmail.com.br";
String cc = "";
String cco = "";
String titulo = "Email test";
String conteudo = "conteudo";
try {
Email email = new SimpleEmail();
email.setHostName("smtp....");
email.setSmtpPort(25);
email.setStartTLSEnabled(true);
email.setFrom(de);
email.addTo(para);
email.setSubject(titulo);
email.setMsg(conteudo);
if (!cc.equals("")){
email.addCc(cc);
}
if (!cco.equals("")){
email.addBcc(cco);
}
email.send();
} catch (EmailException e) {
Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, null, e.getMessage());
}
我使用 JavaMail 1.4。
我编码为base64,然后我将所有文件放入一个字符串中,用;
分隔
在网络服务中,我首先拆分字符串,然后从 base64 解码。
我有一个电子邮件 Web 服务 - 工作正常 - 现在我需要添加附件。
1.How 我是否在我的 post 方法中编写 @FormParam 来接收 byte[]?
2.How 我是否将我的 bean 写为 addParam 以添加文件?
我的bean是这样的:
public String sendEmail() throws IOException{
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
String ip = req.getRemoteAddr();
String conteudo = "é ô ç $ & / { [";
List<byte[]> att = new ArrayList<byte[]>();
String request = "myURI";
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(request);
method.getParams().setContentCharset("utf-8");
method.addParameter("conteudo", conteudo);
method.addParameter("ip", ip);
return "sendEmail ok";
}
我的POST方法是这样的:
@POST
@Path("/sendEmail")
@Consumes({"application/json","application/x-www-form-urlencoded",})
public String sEmail(@FormParam("conteudo") String conteudo, @FormParam("ip") String ip)throws MessagingException {
String de = "de@mail.com.br";
String para = "para@rmail.com.br";
String cc = "";
String cco = "";
String titulo = "Email test";
String conteudo = "conteudo";
try {
Email email = new SimpleEmail();
email.setHostName("smtp....");
email.setSmtpPort(25);
email.setStartTLSEnabled(true);
email.setFrom(de);
email.addTo(para);
email.setSubject(titulo);
email.setMsg(conteudo);
if (!cc.equals("")){
email.addCc(cc);
}
if (!cco.equals("")){
email.addBcc(cco);
}
email.send();
} catch (EmailException e) {
Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, null, e.getMessage());
}
我使用 JavaMail 1.4。
我编码为base64,然后我将所有文件放入一个字符串中,用;
分隔在网络服务中,我首先拆分字符串,然后从 base64 解码。