我是在 Android 中使用 Retrofit 网络的新手。到目前为止,我已经成功编写了将字符串发送到 PHP 服务器的代码。服务器配置为接受我的字符串,其中包含系统 ID 和密码(“systemid=id&password=password”)。通过这样的字符串附加参数可能看起来很奇怪,但这是我必须为这个项目做的方式。无论如何,在服务器上,如果发送给它的 id 和密码符合某些条件,它会发回一个文件位置列表。到目前为止,我从服务器得到了正确的响应。换句话说,“response.getMessage()”返回“OK”。但是我怎样才能得到服务器试图发回的列表呢?到目前为止,这是我的实现。
界面:
public interface ExampleClient {
@POST("login/fake_name.php")
Call<String> sendStringToServer(@Body String string);
}
这是我在活动中的代码:
private void sendRequestToServer(String str) {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://www.example.com/")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
PromoterKiosksClient client = retrofit.create(ExampleClient.class);
Call<List<String>> call = client.sendStringToServer(str);
call.enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Log.d(TAG, response.toString());
Log.d(TAG, response.message());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(AdminActivity.this, "you suck! keep trying", Toast.LENGTH_SHORT).show();
}
});
}
onResponse() 中是否有我可以做到这一点的地方,还是我需要一个完全不同的实现?提前致谢