代码如下:
ApiSerice:public interface ApiService {
@GET("test.do")
Call<String> getString(@Query("phoneNum")String phoneNum);
}
执行模块: public void onClick(View view) {
switch (view.getId()) {
case R.id.buttonOK:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(LocalPropertyUtils.serverUrl(MainActivity.this))
.addConverterFactory(FastJsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
String phoneNum = "13948756432";
Call<String> call = apiService.getString(phoneNum);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
Message message = new Message();
message.obj = response;
mHandler.sendMessage(message);
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
t.printStackTrace();
}
});
break;
default:
break;
}
}
HandlerHandler mHandler = new Handler() {
Integer times = 0;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
times++;
//这里会弹出两次
Toast.makeText(MainActivity.this, "Times:" + times.toString(), Toast.LENGTH_LONG).show();
}
};
Debug调试,发现其中onResponse()会执行两次,在短时间内发送了两次请求。
ApiSerice:public interface ApiService {
@GET("test.do")
Call<String> getString(@Query("phoneNum")String phoneNum);
}
执行模块: public void onClick(View view) {
switch (view.getId()) {
case R.id.buttonOK:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(LocalPropertyUtils.serverUrl(MainActivity.this))
.addConverterFactory(FastJsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
String phoneNum = "13948756432";
Call<String> call = apiService.getString(phoneNum);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
Message message = new Message();
message.obj = response;
mHandler.sendMessage(message);
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
t.printStackTrace();
}
});
break;
default:
break;
}
}
HandlerHandler mHandler = new Handler() {
Integer times = 0;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
times++;
//这里会弹出两次
Toast.makeText(MainActivity.this, "Times:" + times.toString(), Toast.LENGTH_LONG).show();
}
};
Debug调试,发现其中onResponse()会执行两次,在短时间内发送了两次请求。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货