Android で POST データを送信する方法
Android 向けに開発する場合、POST データをリモート サーバーに送信する方法を知ることが不可欠です。この記事では、非推奨の AsyncTask とより新しいアプローチの両方を使用してこれを実現する方法に関する包括的なガイドを提供します。
非推奨の AsyncTask メソッド
次のコード スニペットは、その方法を示しています。 AsyncTask を使用して POST データを送信するクラス:
public class CallAPI extends AsyncTask<String, String, String> { public CallAPI() { //set context variables if required } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { String urlString = params[0]; // URL to call String data = params[1]; //data to post OutputStream out = null; try { URL url = new URL(urlString); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); out = new BufferedOutputStream(urlConnection.getOutputStream()); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8")); writer.write(data); writer.flush(); writer.close(); out.close(); urlConnection.connect(); } catch (Exception e) { System.out.println(e.getMessage()); } } }
Android 6.0 用の更新されたメソッド
public void postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("id", "12345")); nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } }
以上がAndroid で POST データを送信する方法: AsyncTask と最新のメソッド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。