2016-08-19 58 views
0

這是我的Android從Android的發送數組到Web服務

public String addRelation(ArrayList<Medida> pMedidas, Equipo pEquipo) throws UnsupportedEncodingException { 

    String eTagEquipo = Seguridad.encriptar(String.valueOf(pEquipo.getTag())); 
    ArrayList<String> eMedidas = new ArrayList<>(); 
    int size = pMedidas.size(); //Obtenemos la cantidad de medidas relacionadas con el equipo 

    for(int x=0;x<pMedidas.size();x++) { 
     eMedidas.add(String.valueOf(pMedidas.get(x).getId())); 
    } 
    String urlParametros = "tagEquipo=" + eTagEquipo + 
      "&idMedidas[]=" + eMedidas; 
    HttpURLConnection conn = null; 
    StringBuffer sb = null; 
    try{ 
     URL url = new URL ("http://www.myUrl.com/myFolder/WebService/myFolder/relEquipoMedidas.php"); 
     conn = (HttpURLConnection)url.openConnection(); 
     conn.setRequestMethod("POST"); //Método POST 

     //Longitud de datos que se envian 

     conn.setRequestProperty("Content-Length", ""+ Integer.toString(urlParametros.getBytes().length)); 
     conn.setDoOutput(true); //Comando para la salida de datos 

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

     int responseCode=conn.getResponseCode(); 
     if (responseCode == HttpsURLConnection.HTTP_OK) { 
      BufferedReader in=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      sb = new StringBuffer(""); 
      String line=""; 
      while((line = in.readLine()) != null) { 
       sb.append(line); 
       break; 
      } 
      in.close(); 
      return sb.toString(); 
     } 
     else { 
      return new String("False"); 
     } 
    } 
    catch(Exception e){ 
     return new String("Exception"); 
    } 

} 

代碼,這是我在Web服務代碼(PHP):

require_once '../../x/Conexion.php'; 

//----Recibimos los datos para realizar un alta----- 
$tagEquipo= filter_input(INPUT_POST, 'tagEquipo', FILTER_SANITIZE_STRING); //Seguridad de saneamiento 
$idMedidas= (array)$_POST['idMedidas']; //Seguridad de saneamiento 

//-------------------------------------------------- 

$db = new Conexion(); 
$array = array(); 
//Primero se consulta que no exista actualmente 
$cons = $db->query("SELECT _id FROM t__equipos WHERE _tag = '$tagEquipo';"); 
$idEquipo = $db->recorrer($cons)[0]; 
$cant = count($idMedidas); 
$i = 0; 
while($i < $cant) 
{ 
    $ins = $db->query("INSERT INTO t__EquiMed(_idEquipo, _idMedida, _ordenMedida) VALUES ('$idEquipo', '$idMedidas[$i]', ($i+1))"); 

    $i++; 
} 
$array[0]['_resultado'] = 1; 
echo json_encode($array); 
+0

具有u解決問題了嗎? – Tony

+0

是我的朋友!我用「for」和我添加的每個參數。 – Strelok

回答

0

你需要轉換你的數組列表到JSON字符串數組,你可以通過很多方式做到這一點(你可以看看GSONJackson) 然後ü需要做到這一點

 String data = jsonarray string; 
     OutputStream outputStream = urlConnection.getOutputStream(); 
     BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
     writer.write(data); 
     writer.close(); 
     outputStream.close(); 

而且它會更好,如果你使用的網絡庫,而使用像volleyIon默認URL連接使用,Retrofit