如何在Android中使用POST方法发布任何数据

请告诉我在哪里放置代码.

我正在创建一个应用程序,

>获取位置,
>获取位置后,单击“发布”按钮,
>快速,使用POST(HTTP)方法将其发送到我的PHP页面.

如下面的应用程序截图,你可以看到两个输入框与LAT& LONG&名称值:

我有以下代码来获取位置:

public class MainActivity extends Activity implements LocationListener {
EditText lat;
EditText lng;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /********** get Gps location service LocationManager object ***********/

    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

            /* CAL METHOD requestLocationUpdates */

    // Parameters :
    //   First(provider)    :  the name of the provider with which to register
    //   Second(minTime)    :  the minimum time interval for notifications,
    //                         in milliseconds. This field is only used as a hint
    //                         to conserve power, and actual time between location
    //                         updates may be greater or lesser than this value.
    //   Third(minDistance) :  the minimum distance interval for notifications, in meters
    //   Fourth(listener)   :  a {#link LocationListener} whose onLocationChanged(Location)
    //                         method will be called for each location update


    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
            3000,   // 3 sec
            10, this);

    /********* After registration onLocationChanged method  ********/
    /********* called periodically after each 3 sec ***********/
}

/************* Called after each 3 sec **********/
@Override
public void onLocationChanged(Location location) {

    lat = (EditText)findViewById(R.id.lat);
    lng = (EditText)findViewById(R.id.lng);
    lat.setText(""+location.getLatitude());
    lng.setText(""+location.getLongitude());

    String str = "Latitude: "+location.getLatitude()+"Longitude: "+location.getLongitude();

    Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
}


@Override
public void onProviderDisabled(String provider) {

    /******** Called when User off Gps *********/

    Toast.makeText(getBaseContext(), "GPS is OFF, Turn it on", Toast.LENGTH_LONG).show();
}

@Override
public void onProviderEnabled(String provider) {

    /******** Called when User on Gps  *********/

    Toast.makeText(getBaseContext(), "GPS ON ", Toast.LENGTH_LONG).show();
    Toast.makeText(getBaseContext(), "Waiting for location..... ", Toast.LENGTH_LONG).show();
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}    

这是获取位置和填写LAT&的代码.当GPS得到修复时,输入框的值很长.

现在,
我需要将所有数据发布到我的PHP页面的代码.

最佳答案
如果它对你有帮助.您需要正确的异步任务才能运行以下代码.我希望你知道在网络清单中启用权限.
即:

< uses-permission android:name =“android.permission.INTERNET”/>

HttpResponse YourMethod(String data,String url){       

     // Create a new HttpClient and Post Header
       HttpClient httpClient= new DefaultHttpClient();
        HttpResponse response = null;
        HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60000);
        HttpPost httpPost = new HttpPost(url);
        StringEntity se = new StringEntity(data,"UTF-8"); 
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,"text/html"));
        httpPost.setEntity(se);

        response = httpClient.execute(httpPost);

     }

现在数据是您需要发送lat long数据的String

还有另一种方法可以将数据发送到您的服务器

   public HttpResponse YourMethod(String lat,String lon,Strig url) {
         HttpResponse response =null;
           // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new    HttpPost(url);

     try {

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair(<lat key from php>, lat));
    nameValuePairs.add(new BasicNameValuePair(<lat key from php>, lon));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));


    HttpResponse response = httpclient.execute(httppost);

     } catch (Exception e) {

   }
    finally{
       return response 
      }

 } 

转载注明原文:如何在Android中使用POST方法发布任何数据 - 代码日志