android网络开发实例
时间: 2023-10-21 14:06:31 浏览: 47
以下是一个简单的 Android 网络开发实例,该实例使用 HttpURLConnection 连接到指定的 URL 并获取响应数据。
首先,在 AndroidManifest.xml 中添加以下权限:
```
<uses-permission android:name="android.permission.INTERNET" />
```
然后,在 Activity 中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private static final String URL = "https://www.example.com/api/data";
private TextView mResultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResultTextView = findViewById(R.id.result_text_view);
new GetDataTask().execute();
}
private class GetDataTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
try {
URL url = new URL(URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.connect();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
inputStream.close();
return stringBuilder.toString();
} else {
Log.e(TAG, "HTTP error code: " + responseCode);
}
} catch (IOException e) {
Log.e(TAG, "Error getting data: " + e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(String result) {
if (result != null) {
mResultTextView.setText(result);
} else {
mResultTextView.setText("Error getting data");
}
}
}
}
```
这个例子使用 AsyncTask 来执行网络请求。在 doInBackground() 方法中,我们使用 HttpURLConnection 执行 GET 请求,并从响应流中读取数据。在 onPostExecute() 方法中,我们将响应数据设置到 TextView 中。
注意,这个例子仅供参考,并需要根据具体情况进行修改和优化。