Android HttpPost не работает

У меня есть база данных mysql на localhost: 88 с именем «test» с именем пользователя «root» и таблицей «example».
Я пытаюсь получить данные в моем приложении для Android, используя php-скрипт с методом $ _POST. Но это просто не работает нормально, и я не могу понять, почему. Вот мой код Java:

public class MainActivity extends Activity implements View.OnClickListener
{
TextView txt;
EditText editText;
ProgressBar pb;
Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);

txt = (TextView) findViewById(R.id.textView);
editText = (EditText) findViewById(R.id.editText);
pb = (ProgressBar) findViewById(R.id.progressBar);
button = (Button) findViewById(R.id.button);

pb.setVisibility(View.GONE);
button.setOnClickListener(this);
}

public void onClick(View v)
{
if(editText.getText().toString().length()<1)
Toast.makeText(this, "Enter something!", Toast.LENGTH_SHORT);
else{
pb.setVisibility(View.VISIBLE);
new sendData().execute(editText.getText().toString());
}
}

class sendData extends AsyncTask<String, Integer, Double>
{
@Override
protected Double doInBackground(String... strings) {
postData(strings[0]);
return null;
}

@Override
protected void onPostExecute(Double aDouble) {
pb.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_SHORT).show();
}

@Override
protected void onProgressUpdate(Integer... values) {
pb.setProgress(values[0]);
}

public void postData(String valueIWantToSend)
{
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://10.0.2.2/basicphp/setData.php");
httpPost.addHeader("content-type", "application/json");
try
{
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", valueIWantToSend));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpClient.execute(httpPost);
Log.d("postData","response" + response.getEntity());
}
catch(IOException e){
Log.wtf("postData", e.getMessage());
}
}
}

А вот мой скрипт php:

<?php
$con = mysqli_connect('127.0.0.1:3306', 'root', '', 'test');

if(mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();

$name = mysqli_real_escape_string($con, $_POST['name']);

$sql =
"INSERT INTO `example` (name) VALUES ("$name");";

mysqli_query($con, $sql) or die('Error occured: ' . mysqli_error($con));

echo 'Values inserted successfully!';

mysqli_close($con);
?>

LogCat:

09-22 19:25:16.916    2170-2170/my.com.jsontry D/dalvikvm﹕ Late-enabling CheckJNI
09-22 19:25:17.020    2170-2170/my.com.jsontry E/Trace﹕ error opening trace file: No such file or directory (2)
09-22 19:25:17.112    2170-2170/my.com.jsontry D/libEGL﹕ loaded /system/lib/egl/libEGL_emulation.so
09-22 19:25:17.116    2170-2170/my.com.jsontry D/﹕ HostConnection::get() New Host Connection established 0xb9620558, tid 2170
09-22 19:25:17.132    2170-2170/my.com.jsontry D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_emulation.so
09-22 19:25:17.132    2170-2170/my.com.jsontry D/libEGL﹕ loaded /system/lib/egl/libGLESv2_emulation.so
09-22 19:25:17.220    2170-2170/my.com.jsontry W/EGL_emulation﹕ eglSurfaceAttrib not implemented
09-22 19:25:17.256    2170-2170/my.com.jsontry D/OpenGLRenderer﹕ Enabling debug mode 0
09-22 19:25:24.400    2170-2170/my.com.jsontry W/EGL_emulation﹕ eglSurfaceAttrib not implemented
09-22 19:26:28.272    2170-2188/my.com.jsontry A/postData﹕ Connection to http://10.0.2.2 refused
09-22 19:26:28.292    2170-2173/my.com.jsontry D/dalvikvm﹕ GC_CONCURRENT freed 111K, 9% free 2599K/2852K, paused 10ms+2ms, total 20ms

Очевидно, что я делаю что-то не так, поэтому, пожалуйста, помогите мне понять, что именно и исправить мои ошибки. Я искал похожие вопросы, но до сих пор не нашел ответа. Я был бы очень признателен, если бы вы могли объяснить все это более или менее простыми словами, потому что я довольно новичок в программировании для Android и PHP.

0

Решение

У меня есть база данных mysql на localhost: 88

затем

HttpPost httpPost = new HttpPost("http://10.0.2.2/basicphp/setData.php");

Вы нигде не указываете порт …

Так:

Connection to http://10.0.2.2 refused

Это потому, что вы пытаетесь использовать неправильный порт, по умолчанию это будет 80, а не 88.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]