无法在Android Studio中的改造电话中获得响应

问题描述

我正在使用android studio。我正在使用改造方法来调用rest API后方法。

Rest API请求

enter image description here

回复

{
"data": [
{
    "global_device_id": "982010","msn": "002998002010","relay_operate": "1"
}
],"message": "Auxiliary Relay Status","transactionid": "Abdfqwe332432423ti","status": "1"
} 

改造界面

@Headers("Content-Type: application/x-www-form-urlencoded")
@FormUrlEncoded
@POST("UIP/on_demand_parameter_read")
Call<UIPResponse> getRelayResponse(
        @Header("transactionid") String tid,@Header("privatekey") String pk,@Field("global_device_id") String deviceId,@Field("type") String type
);

改造客户端

public static Retrofit getOnDemandRequest() {
    if (retrofitSignalStrength == null) {
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(logging)
                .connectTimeout(1000,TimeUnit.SECONDS)
                .readTimeout(1000,TimeUnit.SECONDS)
                .build();
        retrofitSignalStrength = new
                Retrofit.Builder().baseUrl(BASE_URL_STAT)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)
                .build();
    }
    return retrofitSignalStrength;
}

响应模型

使用jsonpojo创建了一个模型

public class UIPResponse
{
@SerializedName("data")
@Expose
private List<Datum> data = null;
@SerializedName("message")
@Expose
private String message;
@SerializedName("transactionid")
@Expose
private String transactionid;
@SerializedName("status")
@Expose
private String status;

public List<Datum> getData() {
    return data;
}

public void setData(List<Datum> data) {
    this.data = data;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public String getTransactionid() {
    return transactionid;
}

public void setTransactionid(String transactionid) {
    this.transactionid = transactionid;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

}
class Datum {

@SerializedName("global_device_id")
@Expose
private String globalDeviceId;
@SerializedName("msn")
@Expose
private String msn;
@SerializedName("relay_operate")
@Expose
private String relayOperate;

public String getGlobalDeviceId() {
    return globalDeviceId;
}

public void setGlobalDeviceId(String globalDeviceId) {
    this.globalDeviceId = globalDeviceId;
}

public String getMsn() {
    return msn;
}

public void setMsn(String msn) {
    this.msn = msn;
}

public String getRelayOperate() {
    return relayOperate;
}

public void setRelayOperate(String relayOperate) {
    this.relayOperate = relayOperate;
}

}

最后用我的onClick方法

btnSubmit.setOnClickListener(new View.OnClickListener() 
    {
        @Override
        public void onClick(View v)
        {

            final ProgressDialog progressDialog = new ProgressDialog(getActivity());
            progressDialog.setMessage("Sending Command.....");
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setIndeterminate(true);
            progressDialog.setCancelable(false);
            progressDialog.show();

            Retrofit retrofit = RetrofitClient.getOnDemandRequest();
            RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
            Call<UIPResponse> call = retrofitInterface.getRelayResponse(transactionid,privatekey,global_device_id,type);

            call.enqueue(new retrofit2.Callback<UIPResponse>() {
                @Override
                public void onResponse(Call<UIPResponse> call,Response<UIPResponse> response) {
                    Log.d("Retrofit","response received: " + response.toString());
                    boolean isSuccess = false;

                    if(response.isSuccessful())
                    {
                        isSuccess = true;
                    }
                    progressDialog.dismiss();
                    if (!isSuccess)
                    {

                    }
                    else
                    {

                    }

                }

                @Override
                public void onFailure(Call<UIPResponse> call,Throwable t) {
                    Log.d("Retrofit","error occured: " + t.toString());
                }
            });


            progressDialog.dismiss();
        }

    });

当我运行app并单击send按钮时。 onResponseonFailure中什么也没得到。但是API已执行,我在logcat中得到回应

Logcat

2020-08-12 15:40:46.947 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: --> POST port:IP/program/…
2020-08-12 15:40:46.947 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: Content-Type: application/x-www-form-urlencoded
2020-08-12 15:40:46.948 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: Content-Length: 33
2020-08-12 15:40:46.949 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: transactionid: Arewwsadas32fff4bt
2020-08-12 15:40:46.949 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: privatekey: 8ercq52hiob2312ewqd3
2020-08-12 15:40:46.949 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: global_device_id=982010&type=AUXR
2020-08-12 15:40:46.949 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: --> END POST (33-byte body)
2020-08-12 15:40:50.771 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: <-- 200 port:IP/program/… (3821ms)
2020-08-12 15:40:50.772 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: Content-Type: text/json;charset=UTF-8
2020-08-12 15:40:50.772 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: Content-Length: 180
2020-08-12 15:40:50.772 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: Date: Wed,12 Aug 2020 10:40:51 GMT
2020-08-12 15:40:50.773 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: {"data":[{"global_device_id":"982010","msn":"002998002010","relay_operate":"0"}],"message":"Auxiliary Relay Status","transactionid":"Abdfqwe332432423ti","status":"1"}
2020-08-12 15:40:50.773 3449-3589/com.thumbsol.accuratemobileassetsmanagament D/OkHttp: <-- END HTTP (180-byte body)

我被困住了,不知道该怎么做。

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...