String an einen php Script senden

GeorgA

Mitglied
Hallo,
ich werde mich sehr freuen, wenn Ihr mir erklärt, warum meine App nicht funktioniert.
Ziel:
ein String an einen php Script senden.
Nach dem ich 4-es Tutorials ausprobiert habe, bin mit meinem Latein am ende!
Die
<uses-permission android:name="android.permission.INTERNET"/>
habe ich im Manifest implementiert.

android:minSdkVersion="8"
android:targetSdkVersion="18" /> .... ursprünglich 19

Die Main:

Java:
public class DatatoPHP extends Activity {
....
button1.setOnClickListener(new OnClickListener() {
			
	public void onClick(View v)

	{
	...
	sendData();
});
...

 public void sendData() {

// Variante (Tutorial 1)
HttpClient client=new DefaultHttpClient();		
HttpPost getMethod=new HttpPost("http://www.xxxxxxxxxxxxxx.php");

client.execute(getMethod); <---- FEHLER
...
// Variante (Tutorial 2)
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.xxxxxxxxxxxxxx.php");

httpclient.execute(httppost); <---- FEHLER

...
// Variante (Tutorial 4)
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.xxxxxxxxxxxxxxxxxx.php");  

HttpResponse response = httpclient.execute(httppost);  <---- FEHLER
...
}

Wie gesagt, es sind 4 Tutorials die sehr ähnlichen Aufbau / Syntax haben, deshalb poste ich nicht alles.

Bitte um Hilfe.

Gruß
Georg
 
Zuletzt bearbeitet:

GeorgA

Mitglied
Hallo,
thiaaaa - Entschuldigung!
So verpeilt war ich aus der Verzweiflung.

Es "spuckt" mir eine:
NetworkOnMainThreadException
bzw.
problem parsing line: null

Hier die Methode:

Java:
public void sendData() 
				{
    				HttpClient client=new DefaultHttpClient();
    				
    				HttpPost getMethod=new HttpPost("http://www.XXXXXXXXXXXXXXXXXXXXXXX.php");
    				
    				try {
    				ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    				
    				
    				
    				nameValuePairs.add(new BasicNameValuePair("test1","12345"));
    				nameValuePairs.add(new BasicNameValuePair("test2","54321"));
    				//try {
						getMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8));
						
						//client.execute(getMethod);
						
					} catch (UnsupportedEncodingException e) {
						// TODO Auto-generated catch block
						System.out.println("MY--UnsupportedEncodingException");
						e.printStackTrace();
					}
    				
    				try {
						client.execute(getMethod);
						
						//System.out.println(client.execute(getMethod));
								
								
					} catch (ClientProtocolException e) {
						// TODO Auto-generated catch block
						System.out.println("MY--ClientProtocolException");
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						System.out.println("MY--IOException");
						e.printStackTrace();
					}
				}

Debug / LogCat:

Debug
Thread [<1> main] (Suspended (exception NetworkOnMainThreadException))
<VM does not provide monitor information>
DefaultRequestDirector.execute(HttpHost, HttpRequest, HttpContext) line: 531
DefaultHttpClient(AbstractHttpClient).execute(HttpHost, HttpRequest, HttpContext) line: 555
DefaultHttpClient(AbstractHttpClient).execute(HttpUriRequest, HttpContext) line: 487
DefaultHttpClient(AbstractHttpClient).execute(HttpUriRequest) line: 465
DatatoPHP.sendData() line: 112
DatatoPHP$1.onClick(View) line: 78
Button(View).performClick() line: 3480
View$PerformClick.run() line: 13983
ViewRootImpl(Handler).handleCallback(Message) line: 605
ViewRootImpl(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 137
ActivityThread.main(String[]) line: 4340
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 784
ZygoteInit.main(String[]) line: 551
NativeStart.main(String[]) line: not available [native method]

LogCat

08-03 14:41:07.170: A/NetworkStats(91): problem reading network stats
08-03 14:41:07.170: A/NetworkStats(91): java.lang.IllegalStateException: problem parsing line: null
08-03 14:41:07.170: A/NetworkStats(91): at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:313)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.NetworkManagementService.getNetworkStatsUidDetail(NetworkManagementService.java:1271)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:810)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.net.NetworkStatsService.updateIfacesLocked(NetworkStatsService.java:721)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.net.NetworkStatsService.updateIfaces(NetworkStatsService.java:699)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.net.NetworkStatsService.access$000(NetworkStatsService.java:128)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.server.net.NetworkStatsService$1.onReceive(NetworkStatsService.java:589)
08-03 14:41:07.170: A/NetworkStats(91): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
08-03 14:41:07.170: A/NetworkStats(91): at android.os.Handler.handleCallback(Handler.java:605)
08-03 14:41:07.170: A/NetworkStats(91): at android.os.Handler.dispatchMessage(Handler.java:92)
08-03 14:41:07.170: A/NetworkStats(91): at android.os.Looper.loop(Looper.java:137)
08-03 14:41:07.170: A/NetworkStats(91): at android.os.HandlerThread.run(HandlerThread.java:60)
08-03 14:41:07.170: A/NetworkStats(91): Caused by: java.io.FileNotFoundException: /proc/net/xt_qtaguid/stats: open failed: ENOENT (No such file or directory)
08-03 14:41:07.170: A/NetworkStats(91): at libcore.io.IoBridge.open(IoBridge.java:406)
08-03 14:41:07.170: A/NetworkStats(91): at java.io.FileInputStream.<init>(FileInputStream.java:78)
08-03 14:41:07.170: A/NetworkStats(91): at java.io.FileReader.<init>(FileReader.java:42)
08-03 14:41:07.170: A/NetworkStats(91): at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:272)
08-03 14:41:07.170: A/NetworkStats(91): ... 11 more
08-03 14:41:07.170: A/NetworkStats(91): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
08-03 14:41:07.170: A/NetworkStats(91): at libcore.io.Posix.open(Native Method)
08-03 14:41:07.170: A/NetworkStats(91): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:98)
08-03 14:41:07.170: A/NetworkStats(91): at libcore.io.IoBridge.open(IoBridge.java:390)
08-03 14:41:07.170: A/NetworkStats(91): ... 14 more


at java.io.FileInputStream.<init>(FileInputStream.java:78) ======> sendData();
DatatoPHP.sendData() line: 112 =========> client.execute(getMethod);

Weil ich dachte, das AVD (Emulator) nicht ins netzt kann, habe es auf das Handy übertragen, dort stürzt das App aber ebenso ab.

Das gleiche passiert bei versuchen mit anderen Tutorials ebenso. (Aber erstmal eine!!! Variante)
Ich weis nicht weiter.

Grüße
Georg
 
Zuletzt bearbeitet:

GeorgA

Mitglied
Hallo,
sorry für den Doppel- posting, habe aber was geändert.
Die Netzverbindung habe ich in einen neues Thread "gepackt". (Google sagt mach es so :rtfm:)

Nun jetzt bekomme ich eine IOException
es wird "gemeckert", dass meine Adresse nicht stimmt:
08-03 18:27:47.359: WARN/System.err(1054): java.net.UnknownHostException: Unable to resolve host "www.xxxxxx.de": No address associated with hostname
Wobei ich bei anderen Apps die selber Adresse benutzte und es alles funktioniert.

Ich drehe durch!?!?!?!?
Sollte jemand einen Rat wissen, werde sehr dankbar dafür.

Hier Code:
Java:
 button1.setOnClickListener(new OnClickListener() {
    		public void onClick(View v)
    		{
...

Thread thread = new Thread(new Runnable(){
    	            @Override
    	            public void run() {
    	                try {
    	                	
    	                   	// SendData
    	                	sendData();
    	                	
    	                } catch (Exception e) {
    	                    e.printStackTrace();
    	                }
    	            }
    	        });

    	        thread.start(); 

..
 });
...


Gruß
Georg
 

Dagobert

Bekanntes Mitglied
Das mit der NetworkOnMainStack hast ja schon erkannt =) Trotzdem verbesser ich dich auch hier nochmal ;)
Nimm kein Thread dafür... sondern nen AsyncTask ;)

wie wäre es mit http:// in deiner URL?

lg. Dagobert
 

GeorgA

Mitglied
Hallo,
... Trotzdem verbesser ich dich auch hier nochmal ...
Ich würde mir wünschen: - von Deinen Verbesserungen NIE! "genug zu bekommen" :toll:
Danke!
Was http:// in meiner URL betrifft, war schon ok. (Full Unix path)
Warum die Eclipse so spinnt - keine Ahnung.
Nach einem Clear / Refresh .... war die Meldung (ohne was im Code zu ändern!) weg.

Als ich die "Network Seite" in den AsyncTask "reinquetschen" wollte, bin auf "Sachen" gestoßen, welche mir unbekannt sind. (Habe mit Java 1.1 angefangen .... bei 5.0 war Schluss.)
So was:
class SendtoPHPTask extends AsyncTask<String, Void, String>
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
protected String doInBackground(String... params) {

also exakt:
<String, Void, String>
ArrayList<NameValuePair>(2)
(String... params)

sind für mich ein Novum. (Da muss ich mein Java unbedingt erfrischen!)

Habe gedacht - ok - bediene sich wieder am einen Tut mit AsyncTask.

Das Tut "spukt" mir die IOException!

Irgendwo verliere ich den Blick - nun WO?


Fullcode (eigentlich bin gegen / mag ich selber nicht so ... ) - kaum jemand macht sich die Mühe es zu analysieren ...

Na ja - ich versuche es hier mit den Fullcode.

Java:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;


public class DataToPHP2 extends Activity implements OnClickListener {
	
	private EditText value;
	private Button btn;
	private ProgressBar pb;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_data_to_php2);
        
    	value=(EditText)findViewById(R.id.editText1);
    	btn=(Button)findViewById(R.id.button1);
    	pb=(ProgressBar)findViewById(R.id.progressBar1);
    	pb.setVisibility(View.GONE);
    	btn.setOnClickListener(this);
    }

	public void onClick(View v) {
		// TODO Auto-generated method stub
		if(value.getText().toString().length()<1){
		// out of range
		Toast.makeText(this, "please enter something", Toast.LENGTH_LONG).show();
		}else{
		pb.setVisibility(View.VISIBLE);
		new MyAsyncTask().execute(value.getText().toString());	
		} 
	} 
	
	private class MyAsyncTask extends AsyncTask<String, Integer, Double>{
		 
		@Override
		protected Double doInBackground(String... params) {
				// TODO Auto-generated method stub
				postData(params[0]);
				return null;
				}
 
		protected void onPostExecute(Double result){
			pb.setVisibility(View.GONE);
			Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_LONG).show();
				}
		
		protected void onProgressUpdate(Integer... progress){
			pb.setProgress(progress[0]);
				}
 
		public void postData(String valueIWantToSend) {
				// Create a new HttpClient and Post Header
				HttpClient httpclient = new DefaultHttpClient();
				HttpPost httppost = new HttpPost("http://www.xxxxxxxxxxxxxxxxx.php");
 
				try {
					// Add your data
					List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
					nameValuePairs.add(new BasicNameValuePair("data", valueIWantToSend));
					httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
					// Execute HTTP Post Request
					HttpResponse response = httpclient.execute(httppost);
 
					} catch (ClientProtocolException e) {
						// TODO Auto-generated catch block
						System.out.println("MY--ClientProtocolException");
					} catch (IOException e) {
						// TODO Auto-generated catch block
						System.out.println("MY--IOException");
					}
				}
		}
}


Für einen (mehrere) Tipp werde ich mich sehr freuen.
Ansonsten, es ist mir bewusst, dass nur Teilprobleme gerne beantwortet werden ...

Irgendwo verliere ich den Blick - nun WO?

Gruß
Georg
 
Zuletzt bearbeitet:

GeorgA

Mitglied
Uppppps - sorry, :oops:
es gab KEINE! Fehler im LogCat - außer! meine
System.out.println("MY--IOException");

...
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("MY--IOException");
}
...

Aber naher konnte ich sogar mit System.out schon gar nichts in der IDE ausgeben!
Die Eclipse "spinnte" - aber jetzt ist alles ok. Keine Fehlermeldungen.
NUN!!! mein php Script reagiert nicht.

Code:
...
nameValuePairs.add(new BasicNameValuePair("data", valueIWantToSend));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
...

PHP:
<?php
$data = $_POST['data'];
echo $data;
?>

Also scheint nichts zu senden???
"Komisch ist", dass ich schon 5 Tutorials ausprobiert habe, und keins
beeinfluss mir meine php Scripte.

Bin "am Ende" - kein Plan - was ich noch machen soll ....

LG
Georg
 

GeorgA

Mitglied
SORRY für den DoppelPosting

Nach einem ID Clear, F5, Clear .... sendet das Code, und alles funktioniert.
Sorry - es lag irgendwo an der Eclipse ???

Gruß
Georg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Einen String bewegen wie? Android & Cross-Platform Mobile Apps 3
W UTF-8 String Android & Cross-Platform Mobile Apps 66
W Base64 konvertierter URI String Android & Cross-Platform Mobile Apps 32
W String Array Pfad in Int setzen Android & Cross-Platform Mobile Apps 54
W Volley String Response gibt falchen if aus Android & Cross-Platform Mobile Apps 35
H Anfänger String types not allowed (at 'textColor' with value 'black' Android & Cross-Platform Mobile Apps 13
W Firestore String in Apps Laden Android & Cross-Platform Mobile Apps 10
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
C Zugriff auf die Position eines String- bzw Spinner-Arrays Android & Cross-Platform Mobile Apps 1
J Android String in andere Java-Dateien überführen Android & Cross-Platform Mobile Apps 1
J R.string.(variable) geht das Android & Cross-Platform Mobile Apps 3
R Android incomingNumber bein Eingehenden Anruf immer leerer String Android & Cross-Platform Mobile Apps 4
S SPLIT funktion bei STRING funktioniert nicht! Android & Cross-Platform Mobile Apps 4
J Plötzlich "java.lang.String cannot be converted to JSONObject" Android & Cross-Platform Mobile Apps 9
T int to string ... Android & Cross-Platform Mobile Apps 8
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
M jsonobject cannot be cast to java.lang.string Android & Cross-Platform Mobile Apps 4
N Android Hilfe string to float geht nicht... Android & Cross-Platform Mobile Apps 4
R String wie WAV Datei nutzen Android & Cross-Platform Mobile Apps 4
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
L String dem Display anpassen Android & Cross-Platform Mobile Apps 12
G Text parsen String to Double Android & Cross-Platform Mobile Apps 2
S ein String nach vorgegebenen Zeichen teilen Android & Cross-Platform Mobile Apps 3
N Zeichen im String löschen? Android & Cross-Platform Mobile Apps 18
M MIDlet + Datum in String Android & Cross-Platform Mobile Apps 5
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
F Mit Canvas zeichen und durch einen Timer aktualiesieren Android & Cross-Platform Mobile Apps 1
T einen kreis zeichnen.. Android & Cross-Platform Mobile Apps 1
M Inhalt eines Eingabefeldes an einen Server senden? Android & Cross-Platform Mobile Apps 9
N Textview macht immer nach einem Beistrich einen Abstand Android & Cross-Platform Mobile Apps 6
N Anfängerfrage - mit Java einen Anruf initiieren ? Android & Cross-Platform Mobile Apps 3
B Script für Android Android & Cross-Platform Mobile Apps 1
A Android entfernten Login-Script erreichen Android & Cross-Platform Mobile Apps 1

Ähnliche Java Themen

Neue Themen


Oben