Ver Mensaje Individual
  #5  
Viejo 30/01/17, 11:34:45
Avatar de Joakin60
Joakin60 Joakin60 no está en línea
Miembro del foro
Mensajes: 64
 
Fecha de registro: oct 2015
Mensajes: 64
Tu operador: Movistar
Mencionado: 3 comentarios
Tagged: 0 hilos
He comprobado que los parámetros a pasar son correctos:
ArrayList<String> pidListpassed = args[0];
Log.d("pidListpassed", pidListpassed + " ,");
HashMap<String, ArrayList<String>> params = new HashMap<String, ArrayList<String>>();
params.put("pidList", pidListpassed);
La url también es correcta, así como el PHP, pero json es nulo:
JSONObject json = jParser.makeHttpRequest(url_favoritos, "POST", params);
if(json == null){
Log.d("KKKKKK", "json es nulo");
}
Luego el problema debería estar en el JSON, pero lo he utilizado en otros sitios y funciona, así que no se en que falla.
En lo referente a utilizar DefaultHttpClient no es el caso, y sí me tendré que poner con GSON cuando acabe esto, de momento no quiero mezclar librerías en la misma app. De Volley no he visto nada. Ente las dos ya me dirás con cual debería ponerme.
Te envío el JSONParser por si ves algo raro, pero como te he dicho me ha estado funcionando con la versión 6.

import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;

public class JSONParser {

String charset = "UTF-8";
HttpURLConnection conn;
DataOutputStream wr;
StringBuilder result = new StringBuilder();
URL urlObj;
JSONObject jObj = null;
StringBuilder sbParams;
String paramsString;

public JSONObject makeHttpRequest(String url, String method,
HashMap<String, ArrayList<String>> params) {

sbParams = new StringBuilder();
int i = 0;
for (String key : params.keySet()) {
try {
if (i != 0){
sbParams.append("&");
}
sbParams.append(key).append("=")
.append(URLEncoder.encode(params.get(key).toString (), "utf8"));

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
i++;
}

if (method.equals("POST")) {
// request method is POST
try {
urlObj = new URL(url);
conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept-Charset", charset);
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.connect();
paramsString = sbParams.toString();

wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(paramsString);
wr.flush();
wr.close();

} catch (IOException e) {
e.printStackTrace();
}
}
else if(method.equals("GET")){
// request method is GET

if (sbParams.length() != 0) {
url += "?" + sbParams.toString();
}

try {
urlObj = new URL(url);
conn = (HttpURLConnection) urlObj.openConnection();
conn.setDoOutput(false);
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept-Charset", charset);
conn.setConnectTimeout(15000);
conn.connect();

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

}

try {
//Receive the response from the server
InputStream in = new BufferedInputStream(conn.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "iso-8859-1"), 8);
//BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}

Log.d("JSON Parser", "result: " + result.toString());

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

conn.disconnect();

// try parse the string to a JSON object
try {
jObj = new JSONObject(result.toString());
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

// return JSON Object
return jObj;
}
}
Responder Con Cita