态
当前我正在用:
创建参数RequestParams params = new RequestParams();
params.put("Param1","Value1");
然后以这样的发布:
AsyncHttpClient client = new AsyncHttpClient();
client.post(restApiUrl, params, responseHandler);
但是,它使其成为URL参数。
如何将其添加到邮政请求的正文中,作为表单参数?
我建议使用凌空。Volley是一个HTTP库,可以使Android应用程序的网络更加容易,最重要的是更快。射击可在Github上找到。
get的排球:
RequestQueue queue = Volley.newRequestQueue(getContext);
String url = "http://www.someurl.com?param1=value1¶m2=value2"; // your url
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// here you will get the response from the url
Log.d(TAG, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// in case there is error in request, it'll be thrown here
Log.e(TAG, error.toString);
}
});
queue.add(stringRequest);
发帖的排球:
RequestQueue queue = Volley.newRequestQueue(getContext);
String url = "http://www.someurl.com"; // your url
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// here you will get the response from the url
Log.d(TAG, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// in case there is error in request, it'll be thrown here
Log.e(TAG, error.toString);
}
}){
@Override
protected Map<String,String> getParams(){
// here you add params
Map<String,String> params = new HashMap<>();
params.put("param1", "value1");
params.put("param2", "value2");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return super.getHeaders();
}
@Override
public String getBodyContentType() {
return super.getBodyContentType();
}
};
queue.add(stringRequest);
样品asynctask类
接收URL,参数中的参数...您可以传递URL编码中的任何数量参数!
public class LongOperation extends AsyncTask<String, Void, String> {
Context context;
ProgressDialog progressDialog;
public LongOperation(Context context)
{
this.context=context;
progressDialog=new ProgressDialog(context);
}
protected void onPreExecute() {
progressDialog.setTitle("test");
progressDialog.setMessage("Loading . . . .");
progressDialog.setCancelable(false);
progressDialog.show();
Toast.makeText(context,"loading . . .",Toast.LENGTH_LONG).show();
}
// Call after onPreExecute method
protected String doInBackground(String... urls) {
try {
URL url=new URL(urls[0]);
URLConnection con=url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
// request
OutputStreamWriter io=new OutputStreamWriter(con.getOutputStream());
// parameters
io.write(URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(urls[1], "UTF-8"));
io.flush();
// response
BufferedReader reader=new BufferedReader(new InputStreamReader(con.getInputStream()));
String line,received="";
while ((line=reader.readLine())!=null)
{
received+=line;
}
return received;
}
catch (Exception e) {
return e.getMessage().toString();
}
}
protected void onPostExecute(String un) {
if(processDialog.isShowing())
processDialog.dimiss();
}
}