如何使用 Android 中的 POST 方法 Post 任何数据
How to Post any data using POST Method in Android
请告诉我代码放在哪里。
我正在创建一个应用,
- 获取位置,
- 获取位置后,单击 Post 按钮,
- 很快,使用 POST (HTTP) 方法将其发送到我的 PHP 页面。
如下面的应用程序截图,您可以看到两个输入框,其中包含 LAT、LONG 和 Name 值:
我有以下代码来获取位置:
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 和 LONG 值填充到输入框的代码,当 GPS 得到修复时。
现在,
我需要 POST 的代码,将所有数据导入我的 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);
}
现在data是你需要发送经纬度数据的字符串
还有另一种方法可以将数据发送到您的服务器
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
}
}
请告诉我代码放在哪里。
我正在创建一个应用,
- 获取位置,
- 获取位置后,单击 Post 按钮,
- 很快,使用 POST (HTTP) 方法将其发送到我的 PHP 页面。
如下面的应用程序截图,您可以看到两个输入框,其中包含 LAT、LONG 和 Name 值:
我有以下代码来获取位置:
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 和 LONG 值填充到输入框的代码,当 GPS 得到修复时。
现在, 我需要 POST 的代码,将所有数据导入我的 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);
}
现在data是你需要发送经纬度数据的字符串
还有另一种方法可以将数据发送到您的服务器
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
}
}