私はレトロフィットで作業を始めていますが、この簡単なステップにはまっています。私はログインフォームを持っていて、サーバーで認証しようとしていますが、要求を送信できません。レトロフィット付きシンプルなログインフォーム
これは私が試したものです:
私のレトロフィットのクライアントは:
private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create());
public static <S> S createService(Class<S> serviceClass) {
Retrofit retrofit = builder.client(httpClient.build()).build();
return retrofit.create(serviceClass);
}
マイログインインターフェース:
public interface Login {
@POST(LOGIN)
Call<String> loginWithCredentials(@Body LoginCredentials data);
}
LoginCredentialsクラス:
public class LoginCredentials {
private String name;
private String pass;
public LoginCredentials(String name, String pass) {
this.name = name;
this.pass = pass;
}
}
そして、私が知っている部分LLそれ:
@Override
public void onClick(View v) {
showProgress(true);
String username = userField.getText().toString();
String password = passField.getText().toString();
ApiController.Login loginClient = ApiController.createService(ApiController.Login.class);
Call<String> call =loginClient.loginWithCredentials(new LoginCredentials(username, password));
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
handleResponse(response.body());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
showProgress(false);
Log.e(TAG, t.getLocalizedMessage());
}
});
}
そして、私はエラーUse JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
を取得しておくが、私はそれが何を意味するのか見当がつかない。
あなたのサーバーが実際に戻っているものの例を投稿することができますか? – snkashis
要求が成功した場合、私のサーバはStringを返します。このように、apiトークンとして使用される文字列:7ec16632-e1f4-4787-91f4-7279ce6c48d2 –
さて、私はあなたの 'handleResponse'コードを見る必要があると思います。 – snkashis