método http post que pasa valores nulos al servidor

try { url= new URL(ConstantsClass.VENDOR_FOLLOW + "?UID=" +android_id+"&URL='"+resultfinal+"'&device=android"); connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); request = new OutputStreamWriter(connection.getOutputStream()); request.flush(); request.close(); request.write("Hello!!!"); String line = ""; InputStreamReader isr = new InputStreamReader(connection.getInputStream()); BufferedReader reader = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); while((line=reader.readLine())!=null) { sb.append(line + "&"); } response = sb.toString(); //response.getEntity().getContent(); Log.i("Test", "updated response: " + response); } catch (IOException e) { e.printStackTrace(); } Log.i("Test", "**************url list********************" + url); tag_text.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent in=new Intent(context,LinkWebView.class); in.putExtra("vendorUrl", resultfinal); context.startActivity(in); //postData(); } }); } tag_text.setTextSize(16); return view; } 

Hola, soy nuevo en Android y estoy tratando de pasar valores de la url al servidor, pero estoy obteniendo valores nulos en el lado del servidor. La respuesta de actualización da nulo. Mis valores secundarios del servidor no me dan ningún valor. Necesito pasar la url, android_id y el dispositivo de la url que aparece arriba. Intenté el httpclient también pero también me da valores nulos.

debes probar a continuación el código que funciona muy bien para mí.

  // ADD YOUR REQUEST DATA HERE (you can pass number of variable). ArrayList nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair("Your_var_1", value)); nameValuePairs.add(new BasicNameValuePair("Your_var_2", value)); 

Ahora establece tu conexión web como

(1) Envío de cadenas simples al servidor

  try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("your url only ex:www.google.com/abc"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpParams httpParameters = new BasicHttpParams(); DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { Log.e("Loading Runnable Error in http connection :", e.toString()); } 

(2) Enviar la cadena JSON Encode al servidor

 HttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit HttpResponse response; JSONObject json = new JSONObject(); try { HttpPost post = new HttpPost(URL); json.put("user_name", "chintan"); json.put("password", "khetiya"); StringEntity se = new StringEntity( json.toString()); se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(se); response = client.execute(post); /*Checking response */ if(response!=null){ is = response.getEntity().getContent(); //Get the data in the entity } } catch(Exception e) { e.printStackTrace(); createDialog("Error", "Cannot Estabilish Connection"); } 

La respuesta será igual en ambos casos

 try { BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.e("Loading Runnable Error converting result :", e.toString()); } 

Ahora, al final, el resultado contiene una cadena de salida completa, ahora depende de usted cómo va a leer sus datos. usando json o de lo contrario. estoy haciendo uso de json, así que ponle un código de ejemplo que puede ser útil para ti.

 JSONObject json_data = new JSONObject(result);// its a string var which contain output. my_output_one = json_data.getString("var_1"); // its your response var form web. my_output_two = json_data.getString("var_2"); 

Ahora tiene más de dos variables que tienen cualquier tipo de valor y usan cualquier.

Ahora esto te será útil. si tienes alguna consulta, házmelo saber.

Por favor, llame al color después de escribir y cierre la secuencia en el bloque final. Mira el siguiente código:

  try { url= new URL(ConstantsClass.VENDOR_FOLLOW + "?UID=" +android_id+"&URL='"+resultfinal+"'&device=android"); connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); request = new OutputStreamWriter(connection.getOutputStream()); request.write("Hello!!!"); request.flush(); String line = ""; InputStreamReader isr = new InputStreamReader(connection.getInputStream()); BufferedReader reader = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); while((line=reader.readLine())!=null) { sb.append(line + "&"); } response = sb.toString(); //response.getEntity().getContent(); Log.i("Test", "updated response: " + response); } catch (IOException e) { e.printStackTrace(); } Log.i("Test", "**************url list********************" + url); tag_text.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent in=new Intent(context,LinkWebView.class); in.putExtra("vendorUrl", resultfinal); context.startActivity(in); //postData(); } }); } tag_text.setTextSize(16); return view; }finally{ try{ request.close(); }catch(Exception e){} }