Java实现:OkHttp网络请求与JavaMail邮件发送
需积分: 3 200 浏览量
更新于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参数和认证信息。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2015-11-12 上传
2011-09-02 上传
2011-05-23 上传
2013-12-04 上传
2016-05-22 上传
2008-07-31 上传
屋顶会着火
- 粉丝: 28
- 资源: 1