我正在使用Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Util.APK_DOWNLOAD_URL)
.build();
RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
Call<ResponseBody> request = retrofitInterface.downloadFile();
try {
downloadFile(request.execute().body());
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.getMessage(), Toast.LENGTH_SHORT).show();
}
从服务器下载APK文件。
以下是代码段。
public interface RetrofitInterface {
@GET("development/filename.apk")
@Streaming
Call<ResponseBody> downloadFile();
}
并且
public static String
但是有问题。
下载APK总是与众不同。 所以
如何在
中设置一些@GET(Utils.APK_FILE_NAME)
public static String APK_FILE_NAME = ""
在我的Utils课程中
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';
class Pdf extends TCPDF
{
function __construct()
{
parent::__construct();
}
}
/* End of file Pdf.php */
/* Location: ./application/libraries/Pdf.php */
目前我正在
属性值必须为常量
答案 0 :(得分:4)
您可以使用@Path注释,例如:
@GET("development/{filename}")
@Streaming
Call<ResponseBody> downloadFile(@Path("filename") String filename;
和
String filename;
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Util.APK_DOWNLOAD_URL)
.build();
RetrofitInterface retrofitInterface = retrofit.create(RetrofitInterface.class);
Call<ResponseBody> request = retrofitInterface.downloadFile(filename);
try {
downloadFile(request.execute().body());
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.getMessage(), Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:1)
您可以将其作为参数传递给它,而不是像在
中那样在注释中声明它public interface RetrofitInterface {
@Streaming
Call<ResponseBody> downloadFile(@Url String filename);
}
现在您可以使用
在运行时访问它 Call<ResponseBody> request = retrofitInterface.downloadFile(Utils.APK_FILE_NAME);
答案 2 :(得分:1)
传递字符串的一种方法是使用@Path注释:
public interface RetrofitInterface {
@GET("{APK_FILE_NAME}")
Call<Users> getUsers(@Path(value = "APK_FILE_NAME", encoded = true) String apk_file_name);
}
有关详细信息,请使用以下链接, https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Path.html