次の構造を持つ JSON オブジェクトを POST URL に送信するだけでよい U2F 準拠のクライアントを構築しています。
{
challenge: [Base64-encoded String of 32 bytes],
registrationData: [Base64-encoded String of variable bytes]
}
これは私のコードの抜粋です。これは正常に実行され、エラーはスローされません。
import okhttp3.FormBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
public interface Registration {
@POST("register")
Call<ResponseBody> register(@Body RequestBody body);
}
private void sendRegistrationResponse(String baseURL, String challenge, String data) {
RequestBody data = new FormBody.Builder()
.add("challenge", challengeB64)
.add("registrationData", data)
.build();
Retrofit retro = new Retrofit.Builder()
.baseUrl(info.getString("baseURL"))
.build();
U2FServices.Registration reg = retro.create(U2FServices.Registration.class);
Call<ResponseBody> regCall = reg.register(data);
regCall.enqueue(this);
}
デバッグ サーバーは Node.js で構築されており、その POST "登録" ルートは毎回クライアントによって正常に呼び出されます。問題は、リクエストの本文が常に空であることです。
exports.register = function (req, res) {
var body = req.body; // {}
}
問題は にあるとFormBody.Builder()
思いますが、それがどのように機能するかについて明確な例を示しているドキュメントやコードが見つかりません。どんな助けでも大歓迎です!