ใช่คุณสามารถส่งผ่านได้ในรันไทม์ ตามความเป็นจริงแล้วก็เหมือนกับที่คุณพิมพ์ออกมา สิ่งนี้จะอยู่ในคลาสอินเตอร์เฟส API ของคุณชื่อSecretApiInterface.java
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
จากนั้นคุณส่งพารามิเตอร์ไปยังอินเทอร์เฟซนี้จากคำขอของคุณบางสิ่งตามบรรทัดเหล่านั้น: (ไฟล์นี้จะเป็นตัวอย่างSecretThingRequest.java )
public class SecretThingRequest extends RetrofitSpiceRequest<SecretThing.List, SecretApiInteface>{
private String token;
public SecretThingRequest(String token) {
super(SecretThing.List.class, SecretApiInterface.class);
this.token = token;
}
@Override
public SecretThing.List loadDataFromNetwork() {
SecretApiInterface service = getService();
return service.getSecretThings(Somehow.Magically.getToken());
}
}
Somehow.Magically.getToken()
การเรียกเมธอดที่ส่งคืนโทเค็นอยู่ที่ไหนมันขึ้นอยู่กับคุณว่าคุณกำหนดไว้ที่ไหนและอย่างไร
แน่นอนคุณสามารถมี@Header("Blah") String blah
คำอธิบายประกอบมากกว่าหนึ่งรายการในการใช้งานอินเทอร์เฟซเช่นในกรณีของคุณ!
ฉันพบว่ามันสับสนเช่นกันเอกสารระบุชัดเจนว่ามันแทนที่ส่วนหัว แต่มันไม่ !
ในความเป็นจริงมีการเพิ่มเช่นเดียวกับ@Headers("hardcoded_string_of_liited_use")
คำอธิบายประกอบ
หวังว่านี่จะช่วยได้;)