如何将各种数据从android发送到php

时间:2018-04-18 04:53:45

标签: php android

早上好,我正在android studio中做一个应用程序我正在使用php连接到MYSQL数据库。

但是,当我使用单个参数对我的数据库进行查询时,它可以正常工作,但我做了一个修改,发送了两个参数并且它不起作用,因为我验证了我的php并且查询运行正常但是** Android * *表示执行我的程序时出错,我正在寻找错误可能但我没有找到它没有正确执行的原因

机器人

public class Principal extends AppCompatActivity {

  Spinner opciones;
  Button Consultar;
  EditText Cons;
  JSONArray ja;
  Tabla_Consulta tabla;
  LinearLayout linearLayout;

  @Override
  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    opciones = (Spinner) findViewById(R.id.spinner);
    Consultar = (Button) findViewById(R.id.button_consultar);
    Cons = (EditText) findViewById(R.id.editText_Consulta);
    tabla = new Tabla_Consulta(this, (TableLayout) findViewById(R.id.tabla));

    ArrayAdapter < CharSequence > adapter = ArrayAdapter.createFromResource(this, R.array.Opc, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.preference_category);
    opciones.setAdapter(adapter);

    Consultar.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        String selec = opciones.getSelectedItem().toString();
        String selec1 = Cons.getText().toString();

        Consulta("http://10.0.2.2/Libro_Titulo.php?eje=" + opciones.getSelectedItem().toString() + "&" + "Tit=" + Cons.getText().toString());
        //Consulta("http://10.0.2.2/Biblioteca/Libro_Id.php?ide="+Cons.getText().toString());
        //     Log.d("query",   );
        Log.d("query", selec + " " + Cons.getText().toString());
        Log.d("query", selec + " " + selec1);

      }
    });
  }

  private void Consulta(String URL) {
    Log.i("conexion", URL);
    RequestQueue queue = Volley.newRequestQueue(this);

    StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener < String > () { //EL ERROR ESTA EN ESTA LINEA

      @Override
      public void onResponse(String response) {
        int j = 1;
        Log.d("reponse", response);
        try {

          ja = new JSONArray(response);
          tabla.agregarCabecera(R.array.Opciones);

          for (int i = 0; i < ja.length(); i++) {

            JSONObject c = ja.getJSONObject(i);

            String id = c.getString("Id");
            String Titulo = c.getString("Titulo");
            String Autor = c.getString("Autor");
            String Editorial = c.getString("Editorial");
            String Facultad = c.getString("Facultad");
            String Reserva = c.getString("Reserva");

            if (Reserva.equals("0")) {
              Reserva = Reserva.replace("0", "Libre");
            } else if (Reserva.equals("1")) {
              Reserva = Reserva.replace("1", "Reserva");
            }

            ArrayList < String > elementos = new ArrayList < String > ();

            elementos.add(Integer.toString(j));
            elementos.add(id);
            elementos.add(Titulo);
            elementos.add(Autor);
            elementos.add(Editorial);
            elementos.add(Facultad);
            elementos.add(Reserva);
            elementos.add("BUTTON");
            tabla.agregarFilaTabla(elementos);
            j++;
          }

        } catch (JSONException e) {
          e.printStackTrace();
        }

      }
    }, new Response.ErrorListener() {
      @Override

      public void onErrorResponse(VolleyError error) {

      }
    });
    queue.add(stringRequest);
  }
}

错误

  

04-17 15:31:01.276 11093-11238 / com.example.ferney.bibliotecacur E / Volley:[429] BasicNetwork.performRequest:http://10.0.2.2/Libro_Titulo.php?Consolu=Id&Tit=1的意外回应代码404

PHP

< ? php
header('Content-Type: text/html;charset=utf-8');
include('Conectar.php');
$Tit = $_GET["Tit"];
$eje=$_GET["eje"];  // para solo un archivo
$rawdata = array(); //creamos un array

if ($resultset = getSQLResultSet("SELECT * FROM `tbl_libro` WHERE $Consolu='$Tit'")) {

  
  $rawdata = array(); //creamos un array
  $i = 0;
  while ($row = mysqli_fetch_array($resultset)) {       
    $rawdata[$i] = $row;
    $i++;
  }

  echo json_encode($rawdata);
}

2 个答案:

答案 0 :(得分:0)

  1. 检查您是否已将 Server OnLine
  2. 验证您所请求的网址 正确
  3. 测试网络服务正在使用 PostMan Advanced REST Client
  4. 正常运作
  5. 如果您使用的是仿真器,则使用IP作为10.0.2.2,如果真实设备使用的是同一网络并使用系统IP
  6. 在测试时是否存在问题,请检查您的截击请求

答案 1 :(得分:0)

使用 org.apache.http

向服务器发送数据的另一种方法
      ServiceHandler jsonParser = new ServiceHandler();
      String URL = "http://10.0.2.2/Libro_Titulo.php?eje="+id;
      String json="";
      json = jsonParser.makeServiceCall(URL, ServiceHandler.GET);

makeServiceCall 访问以下链接

ServiceHandler.java