App Android che invia una string da visualizzare su una pagina web

Ho cercato di creare un'app e una pagina Web Android per mesi, in cui l'app invia una semplice string al sito Web e il sito Web visualizza tale text. Ho provato molti tutorial, ma sono tutti incompleti o vecchi.

SOLUZIONE

Poiché sono solo un n00b per quanto riguarda la codifica, non sono stato in grado di dire se i suggerimenti fossero l'intera storia o solo una parte della storia. Si è scoperto che avevo solo una parte della storia.

Il mio objective era: creare un'app per Android e una pagina web, in cui l'app invia una semplice string al sito Web e il sito Web visualizza quel text che tutti possono vedere . Quest'ultima parte non ho menzionato nella mia domanda. Quindi chiedere aiuto completo per get la risposta giusta.

C'erano un paio di passaggi che wherevo prendere:

  1. Registra un nome dominio (che ho fatto)
  2. Contratto di un servizio di hosting (che ho fatto)
  3. Carica un file php con il codice HasH (vedi sotto) al file manager per la tua pagina web nella topdirectory di quella pagina web, assicurati che nessun content manager sia in esecuzione per quel dominio o sottodominio (qui ho fatto un errore: ho avuto Parallels Presence Generatore in esecuzione sul dominio di destinazione. Poiché utilizza sempre un model, non sono stato in grado di pubblicare una versione "pulita" del file php. Ciò ha comportto la restituzione della mia pagina Web da informazioni indesiderate a partire da <!DOCTYPE ecc. nuovo sottodominio senza gestione dei contenuti e caricato un file php con il codice php di Hash. Ha funzionato perfettamente)
  4. Poi ho creato l'app per Android usando il codice di Hash (vedi sotto, non dimenticare i file .jar E non dimenticare di aggiungere i file .jar come libreria!).
  5. Poiché la mia domanda era incompleta, il codice di Hash non trattava la parte che la pagina web deve mostrare il text a tutti da vedere. Poiché php è personale per each utente, ho dovuto aggiungere un'aggiunta al codice.

Vedere qui:

 <?php $msg = $_POST['msg']; if($_SERVER['REQUEST_METHOD']=='POST'){ $myfile = fopen("yourfilename.txt", "a") or die("Unable to open file!"); fwrite($myfile, $msg . "\n"); fclose($myfile); } $myfile = fopen("yourfilename.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("yourfilename.txt")); fclose($myfile); ?> 

Va bene, lascia che ti dia un modo molto semplice per colbind la tua applicazione alla pagina del servizio PHP … Per prima cosa devi assicurarti di avere già queste librerie: 1- http-core-4.1.jar 2- httpclient-4.0.3. jar

Quindi crea un nuovo nome di class "JSONParser" e incolla questo codice:

 import android.util.Log; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.List; public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } // function get json from url // by making HTTP POST or GET mehtod public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { // Making HTTP request try { // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }else if(method == "GET"){ // request method is GET DefaultHttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?" + paramString; HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj; } } 

Bene, ora vai alla tua attività principale e fallo come segue:

 public class MainActivity extends AppCompatActivity { JSONParser jparser = new JSONParser(); ProgressDialog pdialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String msg = "Hello"; new connector().execute(msg); //This will create a new thread to connect with your service page. } //The AsyncClass connector.. class connector extends AsyncTask<String,String,String> { @Override protected void onPreExecute(){ pdialog = new ProgressDialog(MainActivity.this); pdialog.setMessage("Sending Hi..."); pdialog.setCancelable(false); pdialog.setIndeterminate(false); pdialog.show(); } //ArrayList to carry your values List<NameValuePair> data = new ArrayList<>(); @Override protected String doInBackground(String... params) { try { data.add(new BasicNameValuePair("msg",params[0])); //here we sit the key "msg" to carry your value which you passed on thread execute. //Then create the JSONObject to make the rquest and pass the data(ArrayList). JSONObject json = jparser.makeHttpRequest("Http://example.com/mypage.php","POST",data); /*In case you want to receive a value from your page you should do something like this.. String getString = json.getString("key1"); Int getInt = json.getInt("key2"); key1,key2 are keys that you send from your page. */ } catch (Exception e) { /* Any Exception here */ } return null; } @Override protected void onPostExecute(String file_url){ pdialog.dismiss(); // This After the thread did it's operate /* For Example you Toast your key1,key2 values :D*/ } } } 

Nella tua pagina PHP dovresti fare come segue ..

 <?php //In case of receive.. $msg = $_POST['msg']; echo $msg; //In case of send.. $values = arrays(); $values["key1"] = "Hello this is key1"; $values["key2"] = "Hello this is key2"; echo json_encode($values); //this will make a json encode which you can get it back in your application ;) ?> 

Spero che aiuti :), e mi dispiace per il mio pessimo inglese: v