Java实现:OkHttp网络请求与JavaMail邮件发送

需积分: 3 0 下载量 18 浏览量 更新于2024-08-03 收藏 4KB MD 举报
本资源提供的是使用Java进行邮件发送和网络请求的相关代码示例,主要涉及OkHttp库来实现HTTP请求以及JavaMail API发送邮件。 ### 邮件发送 - JavaMail API JavaMail API是Java平台上的一个标准库,用于处理电子邮件。使用JavaMail发送邮件通常包括以下步骤: 1. 引入JavaMail相关的依赖库,如javax.mail和javax.mail.internet。 2. 创建`Properties`对象,配置SMTP服务器的相关属性,如主机名、端口、认证方式等。 3. 初始化`Session`对象,设置认证信息。 4. 创建`Message`对象,并填充发件人、收件人、主题和正文等信息。 5. 使用`Transport`类发送邮件。 例如: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("username", "password"); } }); Message message = new MimeMessage(session); message.setFrom(new InternetAddress("from@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@example.com")); message.setSubject("邮件主题"); message.setText("邮件正文"); Transport.send(message); ``` ### 网络请求 - OkHttp OkHttp是一个高效的HTTP客户端库,用于在Java应用程序中发送网络请求。这里展示了GET和POST请求的示例: #### GET 请求 ```java OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://api.xxx.com/xxx/api/GetToken?appid=SHHY&secret=xxxxx") .addHeader("x-token", "sdfsdfsdfsdf") .build(); Response response = client.newCall(request).execute(); ResponseBody responseBody = response.body(); String string = responseBody.string(); System.err.println(string); JSONObject jsonObject = JSON.parseObject(string); System.out.println(jsonObject.toString()); // 获取JSON数据 System.out.println(jsonObject.getString("code")); System.out.println(jsonObject.getIntValue("code")); String data = jsonObject.getString("data"); JSONObject parseObject = JSON.parseObject(data); String token = parseObject.getString("token"); System.out.println(token); ``` #### POST 请求 ```java JSONArray extraInfo = new JSONArray(); extraInfo.add("SNBU8164041"); extraInfo.add("SNBU8164042"); final JSONArray jsonArray = new JSONArray(); Request request = new Request.Builder() .url("http://api.example.com/postEndpoint") .post(RequestBody.create(MediaType.parse("application/json"), jsonArray.toString())) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { // 处理失败情况 } @Override public void onResponse(Call call, Response response) throws IOException { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); // 处理成功响应 String responseBody = response.body().string(); System.out.println(responseBody); } }); ``` 以上代码展示了如何使用OkHttp发起GET和POST请求,包括添加请求头、发送JSON数据以及处理响应。对于POST请求,可以使用异步方式(`enqueue`方法)或同步方式(`execute`方法)执行。 通过这些代码片段,开发者可以了解到如何在Java项目中实现邮件发送和网络请求功能,这对于开发Web应用、API客户端或者集成服务之间通信非常有帮助。记得在实际使用时,替换为真实的服务器地址、API参数和认证信息。