我使用Volley StringRequest从我的android代码发送POST值...在更新我的android工作室之前它工作得很好但是在更新后,我没有从android获得任何POST值而我无法得到问题在哪里在我的Android代码或服务器端。任何人都可以告诉我解决这个问题。
这是我的Android代码。
public class PostRequestTest extends AppCompatActivity {
String URL = "http://.....";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post_request_test);
SendData();
}
private void SendData()
{
StringRequest stringRequest = new StringRequest(Request.Method.POST,URL,
new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
Log.d("Response",response);
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(PostRequestTest.this, error.toString(), Toast.LENGTH_LONG).show();
}
})
{
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<>();
params.put("user_name","uname");
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}}
在PHP中,我只是打印我的用户名但无法获得任何值
<?php echo $_POST['user_name']; ?>
提前致谢:)
答案 0 :(得分:0)
我认为问题出在字符串请求上。而是使用Json Object Request for Post。
JSONObject obj=new JSONObject();
obj.put("user_name","user_name");
JsonObjectRequest request=new JsonObjectRequest(Request.Method.POST,your_url,obj,new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
Log.d("Response",response);
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(PostRequestTest.this, error.toString(), Toast.LENGTH_LONG).show();
}
})