Android: отправка данных для хранения в MySQL

Решено: отсутствовал параметр просмотра для postData (), измененный, чтобы отразить это.

Мне нужна помощь в отправке данных GPS на сервер, который будет храниться в базе данных MySQL с помощью PHP.

Это внутри моего файла Java:

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); public void postData(View v) { nameValuePairs.add(new BasicNameValuePair("Lat","19.80")); nameValuePairs.add(new BasicNameValuePair("Lon","13.22")); //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.xxxxxxxx.com/test.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); Log.i("postData", response.getStatusLine().toString()); } catch(Exception e) { Log.e("log_tag", "Error in http connection "+e.toString()); } } 

И мой PHP:

 <?php include 'connect.php'; //Connect //retrieve the data $lat = $_POST['lat']; $lon = $_POST['lon']; $sql = "INSERT INTO Coords (Lat, Lon) VALUES('$lat', '$lon')"; if (!mysql_query($sql, $sqlCon)) { die('Error: ' . mysql_error()); } else { //echo "1 record added"; } include 'closeConnection.php'; ?> 

StackTrace: Project – Heat [приложение для Android]

  02-06 00:37:14.265: ERROR/AndroidRuntime(1607): FATAL EXCEPTION: main 02-06 00:37:14.265: ERROR/AndroidRuntime(1607): java.lang.IllegalStateException: Could not find a method **postData(View)** in the activity class com.nathanhunston.heat.Main for onClick handler on view class android.widget.Button with id 'dropLocBtn' 

Первая строка вашей трассировки стека сообщает вам, что вы делаете неправильно:

 02-06 00:37:14.265: ERROR/AndroidRuntime(1607): FATAL EXCEPTION: main 02-06 00:37:14.265: ERROR/AndroidRuntime(1607): java.lang.IllegalStateException: Could not find a method postData(View) in the activity class com.nathanhunston.heat.Main for onClick handler on view class android.widget.Button with id 'dropLocBtn' 

Это связано с тем, что у вас нет параметра View в postData() метода postData() .

Вы добавили в manifest.xml <uses-permission android:name="android.permission.INTERNET"></uses-permission> ?

Я думаю, вы должны назвать это в потоке … если сервер зависает немного, чтобы ответить, вы получаете сообщения Force close

Вы можете посмотреть этот пост: Проблема с Android HTTP POST

Я думаю, проблема в том, что в строке « nameValuePairs.add (новый BasicNameValuePair (« Lat »,« 19.80 »)), « вы использовали Lat и в строке $ _POST ['lat']; , вы использовали lat . поэтому Lat и lat – это разные вещи. Кстати, вот хорошая статья, http://androidtheme.wordpress.com/2011/02/20/connect-android-device-to-mysql/ . Это действительно работает, я надеюсь, вам понравится.