我正在使用GenericRequest(内置jsonrequest的扩展)对接收json对象并返回一个字符串的服务器进行REST调用,如果json对象已经存在,则为“0”,否则为非零字符串。
然而,使用下面的代码,无论我发送了什么,我总是得到一个“0”回来。
JSONObject userobj = new JSONObject();
try {
userobj.put("email",email);
userobj.put("password",password);
userobj.put("username",name);
} catch (JSONException e) {
e.printStackTrace();
}
Log.d(TAG, userobj.toString());
GenericRequest jsonObjReq = new GenericRequest(Request.Method.POST, REGISTER_URL, String.class, userobj,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Handle access token.
Log.d(TAG, "Register received: " + response);
long token = Long.parseLong(response);
if(token == 0) {
Log.d(TAG, "Received 0!");
Toast.makeText(MainActivity.this, R.string.registerfail_toast, Toast.LENGTH_LONG).show();
} else {
Log.d(TAG, "Register success!");
Toast.makeText(MainActivity.this, R.string.Welcome, Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, error.toString());
Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
public String getBodyContentType() {
return "application/json";
}
};
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
helper.add(jsonObjReq);
在Postman中进行测试时,给定输入,如:{“Email”:“DLEE23122”,“Password”:“1234”,“UserName”:“DLEE23122”},它会返回一个非零字符串。(截图如下。)但是当使用截击给出一个稍有不同的输入时,它总是返回一个“0”。会是什么原因呢?
甚至我也面临同样的问题,截击默认连接超时被设置为5秒,并且它已经投递了两次,所以在右侧的邮递员中检查时间,如果它更接近5000ms或更大,这可能是问题所在。我的问题通过在Volley请求中添加以下内容得到了解决:
DefaultRetryPolicy retryPolicy = new DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
jsonObjectRequest.setRetryPolicy(retryPolicy);
如果要设置自定义重试策略,请查看此更改后截取超时持续时间
我需要刷新令牌,但HttpErrorResponse不会返回请求的结果。 收到http://127.0.0.1:8000/api/pdv返回响应:{“令牌错误”:“令牌已过期”} 但是,当我的令牌过期时,我会收到(跨源请求被阻止)。就这个案子。 这是我的配置 配置/cors我用的是barryvdh/laravel-cors 中间件组 我试图得到回应(console.log(error.error)
注意Roy Fielding关于REST设计的以下指南 5.2.1.1资源和资源标识符 REST中信息的关键抽象是资源。任何可以命名的信息都可以是资源:文档或图像、时间服务(例如“今天洛杉矶的天气”)、其他资源的集合、非虚拟对象(例如人)等等。换句话说,任何可能成为作者超文本引用目标的概念都必须符合资源的定义。 资源是到一组实体的概念映射,而不是在任何特定时间点对应于映射的实体。 更准确地说,资源
我正在尝试对远程服务器进行api调用,最初,我遇到以下错误:
任何人都可以在下面帮助我吗? 是否可以通过POSTMAN运行SOAP Get Request? 如果是这样,请提供一些链接或步骤,因为我得到错误
如何在 postman 中验证响应中的所有数据返回 id、名字、姓氏等的结果数量 下面是响应的样子: 我想验证两件事: 1)响应返回id,first_name,last_name,电子邮件 2)所有的first_name都等于“Sebastian ”,不管只有一个结果还是100个结果 这是我尝试过的,但它只适用于一个结果:
我有一个非常基本的,如下所示: 但是,当我将它发送给REST API时,它会收到作为正文。我在Postman中测试了准确的JSON,选择作为,并将添加到endpoint,它就工作了。使用Postman,我能够连接到REST API(在那里我看到JSON对象被接收),然后我得到了所需的响应。 任何想法尝试都将不胜感激!