[英]how to send post params using volley in android?
您好,我正在使用android中的volley开发应用程序。我想使用POST方法向服务器发送一些参数,但是我不知道该怎么做。 我在该活动类中使用了一个活动,我创建了一个用于将数据发送到服务器并获取响应的函数,
这是代码
package com.example.healthcoach;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class HealthCreateAccount extends Activity implements OnClickListener {
EditText et_fname, et_lname, et_email, et_password;
Button btn_create, btn_cancel;
String url = "http://192.168.1.32/get.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.create_user);
initViews();
}
public void initViews() {
btn_create = (Button) findViewById(R.id.signup_btn);
btn_cancel = (Button) findViewById(R.id.signup_btn_cancel);
et_fname = (EditText) findViewById(R.id.signnup_et_fname);
et_lname = (EditText) findViewById(R.id.signnup_et_lname);
et_email = (EditText) findViewById(R.id.signnup_et_email);
et_password = (EditText) findViewById(R.id.signnup_et_pass);
btn_cancel.setOnClickListener(this);
btn_create.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id = v.getId();
switch (id) {
case R.id.signup_btn:
sendData();
Intent bsetup_intent=new Intent(HealthCreateAccount.this,HealthBasicSetUp.class);
startActivity(bsetup_intent);
break;
case R.id.signup_btn_cancel:
break;
default:
break;
}
}
public void sendData()
{
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest str=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String arg0) {
// TODO Auto-generated method stub
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// TODO Auto-generated method stub
}
});
}
}
您可以重写StringRequest
的getParams()
方法。
UDPATE
public class HttpPostStringRequest extends StringRequest {
private Map<String, String> mParams = new HashMap<String, String>();
public HttpPostStringRequest(int method, String url,
Listener<String> listener, ErrorListener errorListener, Map<String, String> params) {
super(method, url, listener, errorListener);
mParams.putAll(params);
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return mParams;
}
}
您可以将发布参数作为映射(如键值对)提供给构造函数
像这样重写getParams
它与Json和String请求一起使用
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", "Androidhive");
params.put("email", "abc@androidhive.info");
params.put("password", "password123");
return params;
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.