private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl) {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
下面是使用我的GET方法的类:
public interface SOService {
@GET("stocks/")
Call<List<Stock>> getStocks();
}
下面是我的类,包含url和如何连接:
public class ApiUtils {
public static final String BASE_URL = "http://127.0.0.1:8000";
public static SOService getSOService() {
return RetrofitClient.getClient(BASE_URL).create(SOService.class);
}
}
这就是我最终尝试获取信息的地方:
public class RegisterActivity extends AppCompatActivity {
private Button registerButton;
private SOService mService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mService = ApiUtils.getSOService();
registerButton = findViewById(R.id.register_button);
registerButton.setOnClickListener(v -> loadAnswers());
}
public void loadAnswers() {
System.out.println("Entro aquí");
mService.getStocks().enqueue(new Callback<List<Stock>>() {
@Override
public void onResponse(Call<List<Stock>> call, Response<List<Stock>> response) {
if(response.isSuccessful()) {
System.out.println("Te lo imprimo");
System.out.println(response.body().toString());
Log.d("MainActivity", "posts loaded from API");
}else {
int statusCode = response.code();
// handle request errors depending on status code
}
}
@Override
public void onFailure(Call<List<Stock>> call, Throwable t) {
Log.d("MainActivity", "error loading from API");
}
});
}
}
public class Stock {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("ticker")
@Expose
private String ticker;
@SerializedName("open")
@Expose
private Double open;
@SerializedName("close")
@Expose
private Double close;
@SerializedName("volume")
@Expose
private Integer volume;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTicker() {
return ticker;
}
public void setTicker(String ticker) {
this.ticker = ticker;
}
public Double getOpen() {
return open;
}
public void setOpen(Double open) {
this.open = open;
}
public Double getClose() {
return close;
}
public void setClose(Double close) {
this.close = close;
}
public Integer getVolume() {
return volume;
}
public void setVolume(Integer volume) {
this.volume = volume;
}
}
您应该尝试检索如下所示的对象列表:
public interface SOService {
@GET("stocks/")
Call<List<Stock>> getStocks();
}
mService.getStocks().enqueue(new Callback<List<Stock>>() {
@Override
public void onResponse(Call<List<Stock>> call, Response<List<Stock>> response) {
if(response.isSuccessful()) {
System.out.println("Te lo imprimo");
System.out.println(response.body().toString());
Log.d("MainActivity", "posts loaded from API");
}else {
int statusCode = response.code();
// handle request errors depending on status code
}
}
@Override
public void onFailure(Call<List<Stock>> call, Throwable t) {
Log.d("MainActivity", "error loading from API");
}
});
编辑
您正在尝试连接到计算机上的本地服务器,但通过模拟器。模拟器无法连接到此服务器。检查这个答案。您正在使用的本地URL将被改版用于识别您的电话(模拟器)上的本地端口和地址。这就是为什么你不能连接。你手机上没有那个地址的服务器。您需要输入您的pc ip地址,以便执行以下操作:)
因此,我有一个名为的对象数组,我需要获得每个球员的得分和犯规总数。 我的问题是我认为我使用了太多的 有没有更干净的解决方案? null null
它成功获取名称、状态和登录。但它将0分配给u_id(用户ID),应该是4。也许它从Json获取id作为字符串?我不知道整数的正确JSON格式。 JSON: POJO:公共类LoginModel{ 界面: 改装功能调用:
我正在为一家酒店开发一个应用程序,使酒店管理层能够报告和查看关注和问题。我正在使用Android和Firebase为这个应用程序。 为了最小化数据下载并优化速度,我正在数据库中添加“活动”和“已解析”节点,如下所示: 现在,酒店希望我添加一个函数来创建一个Excel报告,报告过去一个月内关闭/解决的问题。为此,我将在“resolved”节点上附加一个单值事件侦听器,获取已解决关注点的键,然后为每个
问题内容: 我有一个SQL Server数据库,当在表中插入时,我想通知android应用程序。 例如,当收到订单时,我将其插入到SQL Server数据库中。我还希望用户在我的应用中收到有关订单的通知。该应用程序始终处于打开状态。我使用Web服务与数据库联系。 我不想每10秒钟左右请求一次表格。还有其他办法吗? 问题答案: 您可以使用Google Cloud消息服务,在此处了解如何设置服务器。
基本上我正在从匕首迁移到剑柄。所以我必须删除这个参数 所以,我想从我的匕首剑柄模块传递应用程序类对象的地方很少。 很少有第三部分库。 法典: 像这样的地方很多。那么我该如何实现这一点呢? 编辑:
问题内容: 在一个我目前正在从事的项目中,我遇到了一个角度异常: 在寻找解决方案的搜索中,我直接在浏览器中输入了Web服务的URL,但令人惊讶的是,我没有收到预期的数组。 Web服务类: 当我输入网址时,我希望看到带有JSON对象的JSON数组: 但是,相反,我收到的JSON对象的属性与我期望的JSON对象相同,没有任何数组: 所以我想知道为什么没有数组,当我添加另一个Clazz对象时会发生什么。