Android_Passing参数网址

时间:2017-05-15 14:52:10

标签: javascript php android url

我想从我的Android应用程序在网站上发送一个变量,所以我尝试了这个:



    OutputStreamWriter writer = null;

    URLConnection connexion = null;

    final Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            String data = msg.getData().getString("receivedData");

            long t = System.currentTimeMillis();
            if(t-lastTime > 100) {     // Pour eviter que les messages soit coupes
                ReceptionDetect.append("\n");
                lastTime = System.currentTimeMillis();
            }
            ReceptionDetect.append(data);

            try {

                // Encodage des paramètres de la requête
                String donnees = URLEncoder.encode("Variable="+data);

                // On a envoyé les données à une adresse distante
                URL url = new URL("http://MyWebsite/myPhp.php");
                connexion = url.openConnection();
                connexion.setDoOutput(true);
                //connexion.setChunkedStreamingMode(0);

                // On envoie la requête ici
                writer = new OutputStreamWriter(connexion.getOutputStream());
                // On insère les données dans notre flux
                writer.write(donnees);
                // Et on s'assure que le flux est vidé
                writer.flush();

            } catch (Exception e) {
                e.printStackTrace();

            } finally {
                try{writer.close();}catch(Exception e){}


        }
    }
    };




在我的网站上使用这个php:$_GET['Variable']; echo 'Le détecteur a répondu : '; echo ($Variable);

或者在php中打开txt文件:



<?php

$_GET['Variable'];


 // Open the text file
	$f = fopen("TextRecevoir.txt", "w");
// Write text
	fwrite($f, $_GET["Variable"]);
// Close the text file
	fclose($f);
// Open file for reading, and read the line
	$f = fopen("TextRecevoir.txt", "r");
	

?>
&#13;
&#13;
&#13;

但它不起作用,应用程序启动但没有任何内容没有写入php文件。 如果有人可以帮助我,我不明白为什么它不起作用。 谢谢

- &GT;是的我将清单中的互联网许可。

1 个答案:

答案 0 :(得分:0)

我将举例说明我是如何做到的 也许有编译错误导致我缩短它,所以你可以更好地阅读它 它是Async Task的类扩展。

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class Check extends AsyncTask<String, String, String> {
    protected void onPreExecute() {
        super.onPreExecute();
    }

    protected String doInBackground(String... params) {
        String urlString="http://myserver.com/add.php"; // URL to call
        String resultToDisplay = "";

        InputStream in = null;
        try {
            URL url= new URL(urlString+"?hello="+params[0]);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setReadTimeout(3000);
            urlConnection.setConnectTimeout(3000);
            urlConnection.setRequestMethod("GET");
            urlConnection.setDoInput(true);
            urlConnection.setDoOutput(true);
            in = new BufferedInputStream(urlConnection.getInputStream());
        } catch (Exception e) {
            Log.e("marketdebug",e.getMessage());
            error=true;
            error_resp=e.getMessage();
            return e.getMessage();
        }
        try {
            resultToDisplay = IOUtils.toString(in, "UTF-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return resultToDisplay;
    }
    protected void onPostExecute(String result) {
        Log.d("DEBUG", "RESULT:"+result);
    }

}

执行:

    Check saveData = new Check();

    String myVariable="TEST";
    saveData.execute(myVariable);