[英]raw string in post request body using retrofit
我想在post請求體中發送user:user。 我正在使用改造 lib。 請建議我。
我已經嘗試過這樣了
@POST(/login)
void login(@BODY String s,Callback<LoginResponse>)
並稱之為
login("user:user",Callback<LoginResponse>)
對主體使用TypedString而不是String。
方法#1
考慮你的“user:user”似乎是一個JsonObject。 所以請發布JsonObject而不是Raw String。
您可以構建一個POJO類:
public class User{
public final String user;
User(String user) {
this.user = user;
}
}
你的方法是這樣的:
@POST(/login)
void login(@BODY User user,Callback<LoginResponse>)
並稱之為:
User user = new User("john");
login(user,Callback<LoginResponse>)
由於Retrofit默認使用Gson,因此User實例將被序列化為JSON作為請求的唯一主體。 默認使用content-type: application / json
方法#2
您只需將Raw String作為表單數據發布,內容類型為: application / x-www-form-urlencoded ,只需要@FormUrlEncoded注釋即可。
這是你的方法:
@FormUrlEncoded
@POST(/login)
void login(@Field("yourkey") String user,Callback<LoginResponse>)
你只需要將“ yourkey ”替換為api的密鑰 - “ 用戶 ”
將此稱為:
String user = "john";
login(user,Callback<LoginResponse>)
參考 :
如何在Retrofit請求的主體中發布原始整個JSON
retrofit.http.Field
retrofit.http.FieldMap
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.