我的代码有一个问题,对我来说效果很好,但当我使用代理进行拦截时,它会向我发送一个双重请求。我想解决这个错误,只发送一次。我在查看网页时发现了一个类似的问题,但我对这种语言还不熟悉,不知道如何实现它。
当有慢速请求时,Android截击双发
我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final EditText usernameEditText = findViewById(R.id.username);
final EditText passwordEditText = findViewById(R.id.pwd);
final Button loginButton = findViewById(R.id.btnLogin);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String URL = "https://www.myurl.com/login.php";
String username = usernameEditText.getText().toString();
String pwd = passwordEditText.getText().toString();
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest = new StringRequest(POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject r = new JSONObject(response);
String status = r.getString("msg");
if (status.equals("OK")) {
Intent secretIntent = new Intent().setClass(LoginActivity.this, MenuActivity.class);
startActivity(secretIntent);
finish();
} else {
Toast.makeText(LoginActivity.this, "Wrong Password", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}){
@Override
public Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("pwd", pwd);
return params;
}
};
requestQueue.add(stringRequest);
}
});
}
您好,我可以找到答案,实际上很简单,只需在代码中添加一行代码
stringRequest.setRetryPolicy(new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final EditText usernameEditText = findViewById(R.id.username);
final EditText passwordEditText = findViewById(R.id.pwd);
final Button loginButton = findViewById(R.id.btnLogin);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String URL = "https://www.myurl.com/login.php";
String username = usernameEditText.getText().toString();
String pwd = passwordEditText.getText().toString();
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest = new StringRequest(POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject r = new JSONObject(response);
String status = r.getString("msg");
if (status.equals("OK")) {
Intent secretIntent = new Intent().setClass(LoginActivity.this, MenuActivity.class);
startActivity(secretIntent);
finish();
} else {
Toast.makeText(LoginActivity.this, "Wrong Password", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}){
@Override
public Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("pwd", pwd);
return params;
}
};
stringRequest.setRetryPolicy(new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(stringRequest);
}
});
}
当我做POST请求调用使用JsonObjectRequest在凌空然后在某些wifi它是发送空的身体。但是它可以很好地处理StringRequest POST请求。它在所有移动网络上都运行良好。 我正在使用node。js服务器和expressjs/body解析器。当我使用邮递员发出邮件请求时,一切正常。 错误是什么?如果有人想看我能提供的代码。 使用StringRequest的POST请求 POS
当我在android截击请求的OneErrorRepsonse中收到错误时,我想重试该请求。我怎样才能做到这一点?
我正在用GoogleVolley Api创建一个android应用程序,它处理我的应用程序和php脚本之间的连接。出于某种原因,该应用程序没有向我的服务器发送任何数据,也许这里的某个人可以找到它? 我的方法被正确调用,但是当我尝试打印它时,它返回null!一切实际上都在工作,除了数据没有正确传递,我相信,因为我的php脚本抱怨变量为空
我需要发送如下内容: 我该怎么做?如果我尝试使用此代码,它将不起作用: 我认为我应该创建一个,但我不知道如何做到这一点。
我正在使用截击与API交互。我需要向返回JSON数组的服务发送post请求(带参数)。 JsonObjectRequest有一个构造函数,它接受一个方法和一组参数 但是JSONArrayRequest(我需要的一个)只有一个构造函数的形式 我如何才能使其发送包含数据的POST请求?
我有curl请求从Android推送数据到服务器。下面是Curl请求: 我应该如何使用截击进行post请求?我很困惑,因为我不知道该放在哪里: 所以请任何人帮我完成这件事。任何答案都是可贵的。非常感谢。安静!