android - 通过在android中按下添加按钮,服务器没有响应
问题描述
嗨,下面的代码描述了来自服务器的 json 请求和 json 响应。我们有一个名为 ADD 的按钮。如果您按下 ADD 按钮,将名称和级别作为请求发送,并根据请求从服务器获取状态。
我无法找到我做错的地方。我没有从服务器得到任何响应。
添加.java:
Add.setOnClickListener (new View.OnClickListener ( ) {
@Override
public void onClick(View v) {
final String name = et_building.getText().toString();
final String level = "1";
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API.URL_BASE)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
API service = retrofit.create(API.class);
try{
JSONObject parmobject=new JSONObject ();
parmobject.put("name",name);
parmobject.put("level",level);
Call<NewBuilding> userCall = service.getbuildinglist (parmobject.toString ());
userCall.enqueue(new Callback<NewBuilding> () {
@Override
public void onResponse(Call<NewBuilding> call, Response<NewBuilding> response) {
if (response != null && response.code ()==200) {
JSONObject obj = null;
try {
obj = new JSONObject (String.valueOf (response));
status=obj.getJSONObject (name).toString ();
} catch (JSONException e) {
Log.e("My App", "Could not parse malformed JSON:");
}
if(status.equalsIgnoreCase ("success")){
makeText(getActivity (), "Building successfully Added", Toast.LENGTH_SHORT).show();
arrayList.add (name);
adapter.notifyDataSetChanged ();
}
} else {
makeText(getActivity (), "Please try again for Adding New Building", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<NewBuilding> call, Throwable t) {
t.printStackTrace ();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
});
POJO类:
新建筑.java:
public class NewBuilding {
@SerializedName ("status")
@Expose
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
日志错误:
W/System.err: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
W/System.err: at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:593)
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:205)
at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:39)
W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:223)
at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
解决方案
推荐阅读
- javascript - 将 Array 字符串元素转换为数组
- python - Python:将浮点值更改为颜色
- system.reactive - 执行 ReactiveCommand 后 UI 控件的延迟显示
- mysql - 检索其元记录包含的所有记录,作者 ID 具有最新日期
- string - 如何传递修改后的字符串参数?
- html - 无法将计算机屏幕的 CSS div 中心居中
- java - GAE UnknownHostException adwords.google.com
- angular - 如何使 ng e2e 在可用端口上运行?
- java - 如何在数组中获取动态微调器选定的项目 ID?
- python - 给定一条几何车道,我如何告诉汽车遵循的路径?