我想从我的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;
但它不起作用,应用程序启动但没有任何内容没有写入php文件。 如果有人可以帮助我,我不明白为什么它不起作用。 谢谢
- &GT;是的我将清单中的互联网许可。
答案 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);