我正在尝试从API中获取,但它返回400,我已经尝试将我的本地IP放到10.0.2.2,但他继续这样做,在事件日志中也显示了这一点:模拟器:无法转换来宾DNS ip 。从PostMan我正确地恢复JSON所以我认为问题不在API中
这是我做所有事情的地方
public void PendingTrajects(){
AsyncHttpClient client = new AsyncHttpClient();
String URL = "http://ip:port/api/trajectes";
client.get(this, URL, new AsyncHttpResponseHandler() {
@Override
public void onStart() {
Toast.makeText(PendingTrajectRecyclerView.this, "Carregant...", Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
JSONArray Usuaris = new JSONArray();
JSONArray trajectes = new JSONArray();
String Nom = null;
String strResponseBody = new String(responseBody);
try {
//Usuari = new JSONArray(strResponseBody);
trajectes = new JSONArray(strResponseBody);
}catch (JSONException e){
Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió", Toast.LENGTH_SHORT).show();
}
try {
for(int i = 0; i < trajectes.length(); i++){
JSONObject trajecte = trajectes.getJSONObject(i);
JSONArray realitzas = trajecte.getJSONArray("realitzas");
for(int j = 0; j < realitzas.length(); j++){
JSONObject realitza = realitzas.getJSONObject(j);
JSONObject usuari = realitza.getJSONObject("usuari");
Log.d("xd", ""+usuari.getString("name"));
}
}
}catch (JSONException e){
Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) {
Toast.makeText(PendingTrajectRecyclerView.this, "Error a la connexió ONFailure", Toast.LENGTH_SHORT).show();
Log.d("Error",""+statusCode);
}
});
答案 0 :(得分:1)
由于某些原因,服务器无法或不会处理请求 被认为是客户端错误(例如,格式错误的请求) 语法,无效请求消息框架或欺骗性请求 路由)。
你应该400 BAD REQUEST
你的申请。检查您的参数。
在这里添加一个断点
String URL = "http://ip:port/api/trajectes";
实际上,由于 invalid syntax
,服务器无法理解请求。