如何在改装电话中发送请求正文?
How to send request body in retrofit call?
我在服务中定义了这个调用 class
@POST("enquiries/")
Call<Enquiry> postEnquiry(
@Header("Authorization") String token,
@Body RequestBody body
);
当我在我的存储库文件中实际调用它时:
RequestBody body = requestBody.build();
enquiriesService.postEnquiry(token, body).enqueue(new Callback<Enquiry>() {...
在检查传出网络调用时,我发现传出请求的正文是空的。
如何在请求正文中发送 RequestBody 对象?
发送是什么意思?您的代码已经发送了请求正文和令牌。
您始终可以使用 HttpLoggingInterceptor 将您的请求记录在 Logcat https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor
val apiService: ApiService
get() = setupInstance().create(ApiService::class.java)
private fun setupInstance(): Retrofit {
return Retrofit.Builder()
.baseUrl("BASE_URL")
.client(createClient())
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
}
private fun createClient(): OkHttpClient {
val logging = HttpLoggingInterceptor()
HttpLoggingInterceptor.Level.BODY
return OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.build()
}
您可以使用 Model
class 发送您的请求正文。
例如,
// Task.java
public class Task {
private long id;
private String text;
public Task(long id, String text) {
this.id = id;
this.text = text;
}
}
// ApiInterface
public interface TaskApi {
@POST("/tasks")
void createTask(@Body Task task);
}
// You can request like this
Task task = new Task(1, "my task title");
Call<Task> call = taskService.createTask(task);
call.enqueue(new Callback<Task>() {});
那么,您的请求正文如下所示
{
"id": 1,
"text": "my task title"
}
我在服务中定义了这个调用 class
@POST("enquiries/")
Call<Enquiry> postEnquiry(
@Header("Authorization") String token,
@Body RequestBody body
);
当我在我的存储库文件中实际调用它时:
RequestBody body = requestBody.build();
enquiriesService.postEnquiry(token, body).enqueue(new Callback<Enquiry>() {...
在检查传出网络调用时,我发现传出请求的正文是空的。
如何在请求正文中发送 RequestBody 对象?
发送是什么意思?您的代码已经发送了请求正文和令牌。
您始终可以使用 HttpLoggingInterceptor 将您的请求记录在 Logcat https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor
val apiService: ApiService
get() = setupInstance().create(ApiService::class.java)
private fun setupInstance(): Retrofit {
return Retrofit.Builder()
.baseUrl("BASE_URL")
.client(createClient())
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
}
private fun createClient(): OkHttpClient {
val logging = HttpLoggingInterceptor()
HttpLoggingInterceptor.Level.BODY
return OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.build()
}
您可以使用 Model
class 发送您的请求正文。
例如,
// Task.java
public class Task {
private long id;
private String text;
public Task(long id, String text) {
this.id = id;
this.text = text;
}
}
// ApiInterface
public interface TaskApi {
@POST("/tasks")
void createTask(@Body Task task);
}
// You can request like this
Task task = new Task(1, "my task title");
Call<Task> call = taskService.createTask(task);
call.enqueue(new Callback<Task>() {});
那么,您的请求正文如下所示
{
"id": 1,
"text": "my task title"
}