使用HttpURLConnection或OkHttp库进行网络请求,将数据以JSON或XML格式发送到服务器,并处理服务器返回的响应。
在Android开发中,可以使用Java与服务器进行交互,下面将详细介绍如何使用Java实现与服务器的交互。
1、使用HttpURLConnection类
HttpURLConnection是Java标准库中的一个类,可以用来发送HTTP请求和接收HTTP响应,以下是一个简单的示例代码:

(图片来源网络,侵删)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建URL对象并指定服务器地址和请求路径
URL url = new URL("http://example.com/api");
// 打开连接并获取HttpURLConnection对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为GET
connection.setRequestMethod("GET");
// 发起请求并获取服务器响应状态码
int responseCode = connection.getResponseCode();
// 如果响应状态码为200,表示请求成功,可以读取服务器响应内容
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 打印服务器响应内容
Log.d("Server Response", response.toString());
} else {
Log.e("Server Request", "Failed to get response from server, response code: " + responseCode);
}
// 关闭连接
connection.disconnect();
}
}
上述代码演示了如何使用HttpURLConnection类发送GET请求并获取服务器响应,创建一个URL对象并指定服务器地址和请求路径,通过URL对象的openConnection()方法打开连接,并将返回的URLConnection对象强制转换为HttpURLConnection类型,接下来,设置请求方法为GET,并调用getResponseCode()方法获取服务器响应状态码,如果状态码为200,表示请求成功,可以通过连接的输入流读取服务器响应内容,关闭连接。
2、使用OkHttp库
OkHttp是一个强大的第三方网络库,用于在Android应用中进行HTTP请求和响应的处理,以下是使用OkHttp库发送POST请求的示例代码:
import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建OkHttpClient实例并设置超时时间等参数(可选)
OkHttpClient client = new OkHttpClient().newBuilder()
.connectTimeout(10, TimeUnit.SECONDS) // 连接超时时间设置为10秒
.writeTimeout(10, TimeUnit.SECONDS) // 写入超时时间设置为10秒
.readTimeout(30, TimeUnit.SECONDS) // 读取超时时间设置为30秒
.build();
// 创建请求体(JSON格式)并设置请求头(可选)
Map<String, String> requestBody = new HashMap<>();
requestBody.put("key1", "value1");
requestBody.put("key2", "value2");
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new JSONObject(requestBody).toString());
Request request = new Request.Builder()
.url("http://example.com/api") // 设置请求URL
.post(body) // 设置POST请求体(可选)
.addHeader("Content-Type", "application/json") // 设置请求头(可选) // Content-Type:application/json; charset=utf-8" 表示请求体的媒体类型和字符集编码方式为JSON格式和UTF-8编码方式,可以根据需要添加其他请求头信息。 --> 注意:在使用OkHttp库之前需要在项目的build.gradle文件中添加依赖项:implementation 'com.squareup.okhttp3:okhttp:4.9.0'(版本号可能会有所不同)< </div> <!-- end col -->
</div> <!-- end row -->
</div> <!-- end content -->
</div> <!-- end container -->
</body>
</html>

(图片来源网络,侵删)