httppost FATAL EXCEPTION main

  • Antworten:4
  • Bentwortet
lars
  • Forum-Beiträge: 20

27.09.2012, 21:04:59 via Website

Hallo zusammen,

ich versuche seit Tagen einen httppost durchzuführen, aber leider will es mir nicht gelingen.
Der erst Fehler der angzeigt wird ist FATAL EXCEPTION main
Die permission internet ist gesetzt!

1public class PostDataActivity extends Activity {
2
3 @Override
4 public void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 Toast.makeText(getApplicationContext(), "Your Location is", Toast.LENGTH_LONG).show();
7 // Create a new HttpClient and Post Header
8 HttpClient httpclient = new DefaultHttpClient();
9 HttpPost httppost = new HttpPost("http://dot8.de");
10
11 // Add your data
12 List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
13 nameValuePair.add(new BasicNameValuePair("lat", "51.995717"));
14 nameValuePair.add(new BasicNameValuePair("lon", "7.967613"));
15
16 try {
17 httppost.setEntity(new UrlEncodedFormEntity(nameValuePair, HTTP.UTF_8));
18 } catch (UnsupportedEncodingException e) {
19 // TODO Auto-generated catch block
20 e.printStackTrace();
21 }
22
23
24 // Execute HTTP Post Request
25 try {
26 HttpResponse response = httpclient.execute(httppost);
27 } catch (ClientProtocolException e) {
28 // TODO Auto-generated catch block
29 e.printStackTrace();
30 } catch (IOException e) {
31 // TODO Auto-generated catch block
32 e.printStackTrace();
33 }
34
35 }
36
37}

hat jemand einen Tipp für mich, was das oben falsch ist?

Antworten
Christian
  • Forum-Beiträge: 307

27.09.2012, 21:25:44 via Website

Hi lars,

in der Regel sagt dir die LogCat was deine Exception auslöst.

Aber ich vermute mal das die Exception ausgelöst wird, weil du deinen Netzwerkaufruf nicht in einen seperaten Thread kapselt.

Mfg Christian

Antworten
lars
  • Forum-Beiträge: 20

01.10.2012, 19:58:55 via Website

Moin Christian,

Danke für Deinen Hinweis!
Ich habe das nun alles in einen AsyncTask gepackt. Die Fehler sind nun weg. Allerdings werden auch die Daten nicht gesendet.

1public class PostDataActivity extends AsyncTask<Void, Void, Void>{
2
3 @Override
4 protected Void doInBackground(Void... params) {
5
6 HttpClient httpClient = new DefaultHttpClient();
7 HttpPost httpPost = new HttpPost("http://meineurl.de");
8 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
9 nameValuePairs.add(new BasicNameValuePair("lat", "51.550685"));
10 nameValuePairs.add(new BasicNameValuePair("lon", "7.358154"));
11 try {
12 httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
13 } catch (UnsupportedEncodingException e) {
14 e.printStackTrace();
15 }
16 try {
17 httpClient.execute(httpPost);
18 } catch (ClientProtocolException e) {
19 e.printStackTrace();
20 } catch (IOException e) {
21 e.printStackTrace();
22 }
23 return null;
24 }
25
26 }

Ich schicke das ganze (zeile 17) über einen Button mittels
1new PostDataActivity().execute();
ab

1public class StartActivity extends Activity implements OnClickListener {
2
3 @Override
4 public void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.main);
7 Button b = (Button) findViewById(R.id.start);
8 b.setOnClickListener(this);
9 b = (Button) findViewById(R.id.stop);
10 b.setOnClickListener(this);
11 b = (Button) findViewById(R.id.ansehen);
12 b.setOnClickListener(this);
13 }
14 @Override
15 public void onClick(View v) {
16 if(v.getId()== R.id.start) {
17 new PostDataActivity().execute();
18 }
19// if(v.getId()== R.id.stop) {
20// stopService(new Intent(this,WegAufzeichnungsService.class));
21// }
22 if(v.getId() == R.id.ansehen) {
23 startActivity(new Intent(this,GetDataActivity.class));
24 }
25 }
26}

Was mache ich falsch?

Gruß

Lars

— geändert am 01.10.2012, 19:59:17

Antworten
Christian
  • Forum-Beiträge: 307

02.10.2012, 13:54:46 via Website

Hi lars,

sicher das keine Exception ausgelöst wird? Keine UnsupportedEncodingException oder ClientProtocolException?

Ist "PostDataActivity" eine "Subklasse" (hoffe das heißt so in deutsch) von "StartActivity"?

Kann der Server an den du die Daten schickst auch mit einem POST-Request umgehen?

Mfg Christian

Antworten
lars
  • Forum-Beiträge: 20

02.10.2012, 14:25:44 via Website

Moin,

Danke für den Hinweis!
Der Fehler war im PHP Script nicht in android. Ich hatte $_GET und nicht $_POST abgefragt. *schäm*
Damit klappt es nun! yeah!
...und ich kann weiter machen mit dem location manager ;-)

Antworten