我推荐你使用OkHttp http://square.github.io/okhttp/网络库。你的例子可能是这样的
private final OkHttpClient client = new OkHttpClient();
public String sendData(double latitude, double longitude){
try {
RequestBody formBody = new FormBody.Builder()
.add("Latitude", Double.toString(latitude))
.add("Longitude", Double.toString(longitude))
.build();
Request request = new Request.Builder()
.url("http://httpbin.org/post")
.post(formBody)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
} catch (IOException e) {
return "Error: " + e.getMessage();
}
}
不要忘记在AsyncTask
class IOAsyncTask extends AsyncTask<Location, Void, String> {
@Override
protected String doInBackground(Location... params) {
return sendData(params[0].getLatitude(), params[0].getLongitude());
}
@Override
protected void onPostExecute(String response) {
Log.d("networking", response);
}
}
这可能是onCreate
您的活动方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Location current = new Location("");
current.setLatitude(23.9569596);
current.setLongitude(12.567567);
new IOAsyncTask().execute(current);
}
请注意我使用http://httpbin.org/post
作为远程地址,您必须替换为您的端点 URL。就我而言,响应是:
{
"args": {},
"data": "",
"files": {},
"form": {
"Latitude": "23.9569596",
"Longitude": "12.567567"
},
"headers": {
"Accept-Encoding": "gzip",
"Content-Length": "39",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "okhttp/3.0.1"
},
"json": null,
"origin": "xxx.xx.xxx.xx",
"url": "http://httpbin.org/post"
}