【发布时间】:2015-08-10 08:50:14
【问题描述】:
我是新来的,英语说得不太好,但我会尽力解释。 我对 Post 请求有一些问题。这是我的代码:
private void makeRequest() {
String url = "http://diegocardenas.netau.net/comprobar_usuario.php";
JsonObjectRequest request1=new JsonObjectRequest(Method.POST, url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
onConnectionFinished();
Usuario usuario = new Gson().fromJson(response.toString(), Usuario.class);
if (usuario != null) {
Log.i("App1", "Nombre:" + usuario.getNombre() + " Correo: " + usuario.getCorreo());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
onConnectionFailed(error.toString());
Log.i("App1", error.getMessage());
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<>();
params.put("correo","daniel@gmail.com");
params.put("clave","daniel");
return params;
}
};
addToQueue(request1);
}
这是 Usuario 类:
public class Usuario {
private int cod_usuario, contador, estado;
private String nombre, correo;
public Usuario() {
}
public int getCod_usuario() {
return cod_usuario;
}
public void setCod_usuario(int cod_usuario) {
this.cod_usuario = cod_usuario;
}
public int getContador() {
return contador;
}
public void setContador(int contador) {
this.contador = contador;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getCorreo() {
return correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public int getEstado() {
return estado;
}
public void setEstado(int estado) {
this.estado = estado;
}
}
还有我的 PHP……抱歉,我是 PHP 的初学者
comprobar_usuario.php
<?php
header('Content-Type: text/html; charset=UTF-8');
include_once('usuario.class.php');
$usuario=new Usuario();
$correo=$_POST['correo'];
$clave=$_POST['clave'];
echo json_encode($usuario->getJSONUsuario($correo,$clave));
?>
usuario.class.php
<?php
include_once('database.class.php');
class Usuario{
public function getJSONUsuario($correo,$clave){
$json= array();
$result=$this->comprobarUsuario($correo,$clave);
if(mysql_num_rows($result)){
while ($row=mysql_fetch_row($result)) {
$json[]=array('nombre'=>$row[1], 'correo'=>$row[2],
'contador'=>$row[5]);
}
}
return $json;
}
private function comprobarUsuario($correo, $clave){
$consulta="SELECT * FROM usuario WHERE correo='".$correo."'
AND clave='".$clave."'";
$db=new Database();
return $db->ejecutarConsulta($consulta);
}
}
?>
数据库.class.php
<?php
include_once('datos_conexion.class.php');
class Database{
public function ejecutarConsulta($consulta){
$conexion=mysql_connect(DatosConexion::getServidor(), DatosConexion::getUsuarioConexion(),
DatosConexion::getClaveConexion());
mysql_set_charset('utf8',$conexion);
if(!$conexion){
die('No se pudo conectar al servidor: '.mysql_error());
}else{
mysql_select_db(DatosConexion::getDataBase(),$conexion);
$resultado=mysql_query($consulta);
mysql_close();
return $resultado;
}
}
}
?>
桌子:Usuario 字段:cod_usuario Int, nombre Varchar, correo Varchar, clave Varchar, estado Boolean, contador Int
已编辑 日志:
05-28 09:52:02.921 10862-11210/com.diego.app1I/qtaguid﹕ Failed write_ctrl(u 67) res=-1 errno=22
05-28 09:52:02.921 10862-11210/com.diego.app1I/qtaguid﹕ Untagging socket 67 failed errno=-22
05-28 09:52:02.921 10862-11210/com.diego.app1W/NetworkManagementSocketTagger﹕ untagSocket(67) failed with errno -22
05-28 09:52:02.921 10862-10862/com.diego.app1 I/App1﹕ org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject
我使用 GET 证明了连接并返回了数据,但是当使用 POST 失败时,所有 xD 我认为问题在于getparams方法...
请帮忙!!!!
【问题讨论】:
-
你能给我们看错误日志吗?
标签: android post request gson android-volley