2016-01-30 3 views
2

Я пытаюсь отправить имя = zaeem на мою сторону PHP-сервера, но когда я отправлю его с android, я ничего не получил на стороне php. Мой PHP-код находится на бесплатном хостинге. ниже мой Android и PHP-код.Почему данные не получены в PHP, когда я отправляю его с Android?

этот код для запроса GET

protected String doInBackground(Void... params) 
     { 


      String responseData = ""; 
      InputStream inputStream = null; 

      HttpURLConnection urlConnection = null; 

      Integer result = 0; 
      try { 
       /* forming th java.net.URL object */ 
       URL url = new URL("http://za*******pk/testregister.php/"); 

       urlConnection = (HttpURLConnection) url.openConnection(); 

       /* optional request header */ 
       // urlConnection.setRequestProperty("Content-Type", "application/json"); 

       /* optional request header */ 
       // urlConnection.setRequestProperty("Accept", "application/json"); 

       /* for Get request */ 
       urlConnection.setRequestMethod("GET"); 
       DataOutputStream wr = new DataOutputStream(
         urlConnection.getOutputStream()); 
       wr.writeBytes("name=zaeem"); 

       wr.flush(); 
       wr.close(); 

       int statusCode = urlConnection.getResponseCode(); 
       Log.d("code", statusCode + ""); 
       /* 200 represents HTTP OK */ 
       if (statusCode == 200) { 

        inputStream = new BufferedInputStream(urlConnection.getInputStream()); 

        responseData = convertInputStreamToString(inputStream); 

        result = 1; // Successful 

       } else { 
        result = 0; //"Failed to fetch data!"; 
       } 

      } catch (Exception e) { 
       Log.d("exception", e.getLocalizedMessage()); 
      } 

      return responseData; 

     } 

Этот код для запроса POST

частный класс MyTaskPost расширяет AsyncTask {

@Override 
    protected String doInBackground(Void... params) { 
     String responseData = ""; 
     InputStream inputStream = null; 

     HttpURLConnection urlConnection = null; 

     Integer result = 0; 
     try { 
      /* forming th java.net.URL object */ 
      URL url = new URL("http://za****e.pk/testregister.php"); 

      urlConnection = (HttpURLConnection) url.openConnection(); 

      /* optional request header */ 
      //urlConnection.setRequestProperty("Content-Type", "application/json"); 

      /* optional request header */ 
      // urlConnection.setRequestProperty("Accept", "application/json"); 

      /* for Get request */ 
      urlConnection.setRequestMethod("POST"); 
      urlConnection.setDoInput(true); 
      urlConnection.setDoOutput(true); 
      DataOutputStream wr = new DataOutputStream(
        urlConnection.getOutputStream()); 
      wr.writeBytes("name=zaeem"); 
      wr.flush(); 
      wr.close(); 

      int statusCode = urlConnection.getResponseCode(); 
      Log.d("code", statusCode+""); 
      /* 200 represents HTTP OK */ 
      if (statusCode == 200) { 

       Toast.makeText(getApplicationContext(),"200",Toast.LENGTH_SHORT).show(); 
       inputStream = new BufferedInputStream(urlConnection.getInputStream()); 

       responseData = convertInputStreamToString(inputStream); 

       result = 1; // Successful 

      }else{ 
       result = 0; //"Failed to fetch data!"; 
      } 

     } catch (Exception e) { 
      Log.d("exception", e.getLocalizedMessage()); 
     } 

     return responseData; 

    } 

И мой PHP код на стороне is (Это размещение на бесплатном хостинге)

$name1=$_GET['name']; 
$name1=$_POST['name']; 
$name1=$_REQUEST['name']; 


$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
     // selecting database 
     mysql_select_db(DB_DATABASE); 

    $result = mysql_query("INSERT INTO gcm_users(name, email, gcm_regid,created_at) VALUES('$name1', 'email', 'longtext', NOW())"); 

$result = mysql_query("SELECT * FROM gcm_users WHERE id = 1") or die(mysql_error()); 

      if (mysql_num_rows($result) > 0) 
      { 

       echo 'more than 1 user'; 
      } 

Когда я использую метод POST, я получаю код 200, но все еще данные не добавляются в базу данных.

+0

Является ли ваш код в php работоспособным? –

+0

@SyedTayyabAbbas $ name1 = $ _ GET ['name']; $ name1 = $ _ POST ['name']; $ name1 = $ _ REQUEST ['name']; $ con = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); // выбор базы данных \t mysql_select_db (DB_DATABASE); \t $ result = mysql_query ("INSERT INTO gcm_users (имя, адрес электронной почты, gcm_regid, created_at) VALUES ('$ name1', 'email', 'longtext', NOW())"); \t echo 'shown'; –

+0

- это база данных, измененная этим кодом. –

ответ

1

Эй Zaeem Саттар «попробуйте этот код свою работу, и если вы все еще получаете сообщение об ошибке, то проверьте файл PHP с фиктивными данными»

StringBuilder data; 

    URL urls; 

    HttpURLConnection connection; 

    OutputStreamWriter writeQueryString = null; 

    BufferedReader readData = null; 

    InputStream is = null; 

    try { 

     urls = new URL(url); 
     connection = (HttpURLConnection) urls.openConnection(); 
     connection.setRequestMethod("POST"); 
     connection.setDoOutput(true); 
     connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
     connection 
       .setFixedLengthStreamingMode(queryString.getBytes().length); 

     writeQueryString = new OutputStreamWriter(
       connection.getOutputStream(), "ISO-8859-1"); 

     writeQueryString.write(queryString); 

     writeQueryString.flush(); 

     if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {  

      is = connection.getInputStream(); 

      data = new StringBuilder(); 
      if (is != null) { 
       readData = new BufferedReader(new InputStreamReader(is, 
         "ISO-8859-1")); 

       while ((lineRead = readData.readLine()) != null) { 
        data.append(lineRead); 
       } 

       output = data.toString(); 
      } 
     } else { 
      output = "Problem With Connection"; 
     } 
    } catch (Exception e) { 
     Log.d("errors","HttpClient:"+e.toString()); 
    } 

@zaeemsattar следующие причины для вашей ошибки 1. бесплатный хостинг имеет некоторую проблему с прокси. когда вы отправляете запрос от android php, тогда страница не найдена (404). основываясь на моем прошлом опыте с этими бесплатными хостингами ... 2.your php code function now() и $ name1 эти три переменные с 3 разными методами получения и запроса с ошибкой ..so решение, для которого вы можете использовать функцию даты с одиночная одиночная детская кроватка и на основе запроса android, если использовать пост на стороне android, а затем использовать это на стороне php, чтобы решить вашу проблему. 3. Попробуйте фиктивные данные сначала на php-странице, например, по умолчанию $ name1 = "zaeem"; с этим запуском php-страницы удачи

+0

@priyash $ name1 = $ _ GET ['name']; $ name1 = $ _ POST ['name']; $ name1 = $ _ REQUEST ['name']; $ con = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); // выбор базы данных \t mysql_select_db (DB_DATABASE); \t $ result = mysql_query ("INSERT INTO gcm_users (имя, адрес электронной почты, gcm_regid, created_at) VALUES ('$ name1', 'email', 'longtext', NOW())"); \t echo 'shown'; –

+0

php код стороны прост. если у него есть какая-либо ошибка, любезно исправьте его –

+0

У бесплатного хостинга @zaeemsattar есть проблема с прокси. когда вы отправляете запрос от android php, тогда страница не найдена (404). основываясь на моем прошлом опыте с этими бесплатными хостингами ... –

-1
HttpClient httpclient = new DefaultHttpClient(); 
httppost = new HttpPost("http://za****e.pk/testregister.php"); 
try { 

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(6); 
    nameValuePairs.add(new BasicNameValuePair("name","abcxyz")); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    HttpResponse response = httpclient.execute(httppost); 

}catch(Exception e){ } 

Вы можете получить значения в PHP скрипт

$name1=$_POST['name']; 
+0

httpClient устарело @kami. –

Смежные вопросы