在Android客戶端訪問服務器,通常使用HTTP協議進行通信,以下是詳細的步驟和小標題:
1、添加網絡權限
在AndroidManifest.xml文件中添加網絡權限:
<usespermission android:name="android.permission.INTERNET" />
2、創(chuàng)建網絡請求類
創(chuàng)建一個名為NetworkRequest
的類,用于封裝網絡請求的方法:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class NetworkRequest { private static final String REQUEST_METHOD = "GET"; private static final int READ_TIMEOUT = 15000; private static final int CONNECTION_TIMEOUT = 15000; public String sendGetRequest(String requestUrl) { StringBuilder result = new StringBuilder(); try { URL url = new URL(requestUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setReadTimeout(READ_TIMEOUT); connection.setConnectTimeout(CONNECTION_TIMEOUT); connection.setRequestMethod(REQUEST_METHOD); connection.connect(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); } } catch (IOException e) { e.printStackTrace(); } return result.toString(); } }
3、發(fā)送網絡請求并處理響應結果
在需要發(fā)送網絡請求的地方,調用NetworkRequest
類的sendGetRequest
方法,并處理響應結果:
public class MainActivity extends AppCompatActivity { private NetworkRequest networkRequest; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.textView); networkRequest = new NetworkRequest(); getDataFromServer("https://api.example.com/data"); } private void getDataFromServer(String requestUrl) { networkRequest.sendGetRequest(requestUrl) { response > runOnUiThread(() > { textView.setText(response); }); }; } }
4、單元表格:Android客戶端訪問服務器的主要步驟和代碼示例: