2016-03-16 3 views
0

Я хочу отправить два параметра, используя метод HTTP-сообщения.Как отправить параметры с помощью HTTP-сообщения в Android Studio

Это мой ServiceHandler.java

import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.util.List; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.client.utils.URLEncodedUtils; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.util.EntityUtils; 

public class ServiceHandler { 

    static String response = null; 
    public final static int GET = 1; 
    public final static int POST = 2; 

    public ServiceHandler() { 

    } 

    /** 
    * Making service call 
    * @url - url to make request 
    * @method - http request method 
    * */ 
    public String makeServiceCall(String url, int method) { 
     return this.makeServiceCall(url, method, null); 
    } 

    /** 
    * Making service call 
    * @url - url to make request 
    * @method - http request method 
    * @params - http request params 
    * */ 
    public String makeServiceCall(String url, int method, 
            List<NameValuePair> params) { 
     try { 
      // http client 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpEntity httpEntity = null; 
      HttpResponse httpResponse = null; 

      // Checking http request method type 
      if (method == POST) { 
       HttpPost httpPost = new HttpPost(url); 
       // adding post params 
       if (params != null) { 
        httpPost.setEntity(new UrlEncodedFormEntity(params)); 
       } 

       httpResponse = httpClient.execute(httpPost); 

      } else if (method == GET) { 
       // appending params to url 
       if (params != null) { 
        String paramString = URLEncodedUtils 
          .format(params, "utf-8"); 
        url += "?" + paramString; 
       } 
       HttpGet httpGet = new HttpGet(url); 

       httpResponse = httpClient.execute(httpGet); 

      } 
      httpEntity = httpResponse.getEntity(); 
      response = EntityUtils.toString(httpEntity); 

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

     return response; 

    } 
} 

Вот код из моей деятельности

private static String url = "http://example.com/test.php; 

@Override 
     protected Void doInBackground(Void... arg0) { 

      // Creating service handler class instance 
      ServiceHandler sh = new ServiceHandler(); 

      // Making a request to url and getting response 
      String jsonStr = sh.makeServiceCall(url, ServiceHandler.POST); 

      Log.d("Response: ", "> " + jsonStr); 

      if (jsonStr != null) { 
       try { 
        JSONObject jsonObj = new JSONObject(jsonStr); 

        // Getting JSON Array node 
        status = jsonObj.getJSONArray(status_NODE); 
        JSONObject value = status.getJSONObject(0); 

        // Saving Slots Availability in String status 
        // availability = value.getString(availability_NODE); 
        availability = "notFree"; 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       Log.e("ServiceHandler", "Couldn't get any data from the url"); 
      } 

      return null; 
     } 

Как я могу отправить параметры в настоящее время. например, мне нужно отправить параметр а со значением А

Спасибо

ответ

0

Попробуй

HttpPost httpPost = new HttpPost(url); 
// adding post params 
List<NameValuePair> params = new ArrayList<NameValuePair>(2); 
params.add(new BasicNameValuePair("abc", "xyz")); 
if (params != null) { 
    httpPost.setEntity(new UrlEncodedFormEntity(params)); 
} 
httpResponse = httpClient.execute(httpPost 
+0

Я хочу отправить параметры из моей деятельности не из ServiceHandler.java Можно ? – Uday

+0

Итак, попробуйте 'List params = new ArrayList (); params.add (новый BasicNameValuePair ("а", "XYZ")); ' ' sh.makeServiceCall (URL, ServiceHandler.POST, PARAMS); ' – thuongle

+0

Не работает @thuongle – Uday

Смежные вопросы