http post method passing null values to the server

后端 未结 2 954
别跟我提以往
别跟我提以往 2020-11-28 15:06
         try 
         {

            url= new URL(ConstantsClass.VENDOR_FOLLOW + \"?UID=\" +android_id+\"&URL=\'\"+resultfinal+\"\'&device=android\");


            


        
相关标签:
2条回答
  • 2020-11-28 15:17

    you should try below code its running very well for me.

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

    Now establish your web connection like

    (1) Sending simple string to server

        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) Send JSON Encode string to server

    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");
    }
    

    Response will same in both case

    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());
        }
    

    Now at the end result contain whole output string now its depend on you how you will read your data. using json or else. i am doing using json so put example code of it may be helpful to you.

    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");
    

    Now its over you have two variable which having any kind of value and use any were.

    Now this will helpful to you. if you have any query let me know.

    0 讨论(0)
  • 2020-11-28 15:37

    Please call the flush after write and close the stream in finally block. Check out the following code:

       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){}
     } 
    
    0 讨论(0)
提交回复
热议问题