strong text我試圖實現基本用戶註冊。 我正在使用RxJava和翻新(v2測試版)。retrofit.HttpException:HTTP 400錯誤的請求android(關閉)
URL: http://momento-w03d.c9users.io/register
Fields
username
password
fullname
email
當我使用郵遞員送這4個領域的表單數據 的迴應是:["success"]
有我做錯了,或者是因爲我使用CLOUD9服務器的東西。
我是新來改造,我無法理解我犯了什麼錯誤。 非常感謝您的時間。
類AuthServiceFactory
public class AuthServiceFactory {
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(AuthService.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create());
public static <S> S createService(Class<S> clazz) {
final Retrofit retrofit = builder.build();
S service = retrofit.create(clazz);
return service;
}
}
接口AuthService
public interface AuthService {
String BASE_URL = "http://momento-w03d.c9users.io";
@FormUrlEncoded
@POST("/register")
Observable<Message> register(@Field("username") String username,
@Field("password") String password,
@Field("email") String email,
@Field("fullname") String fullname);
}
Model類消息
public class Message {
private String message;
public String getMessage() {
return message;
}
}
發送請求
AuthService authService = AuthServiceFactory.createService(AuthService.class);
authService.register("lorem", "12345678", "[email protected]", "lorem imposium")
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Message>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(Message message) {
System.out.println(message.getMessage());
}
});
堆棧跟蹤
W/System.err: retrofit.HttpException: HTTP 400 Bad Request
W/System.err: at retrofit.RxJavaCallAdapterFactory$SimpleCallAdapter$1.call(RxJavaCallAdapterFactory.java:163)
W/System.err: at retrofit.RxJavaCallAdapterFactory$SimpleCallAdapter$1.call(RxJavaCallAdapterFactory.java:158)
W/System.err: at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
W/System.err: at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:113)
W/System.err: at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:88)
W/System.err: at rx.Observable$2.call(Observable.java:162)
W/System.err: at rx.Observable$2.call(Observable.java:154)
W/System.err: at rx.Observable$2.call(Observable.java:162)
W/System.err: at rx.Observable$2.call(Observable.java:154)
W/System.err: at rx.Observable.unsafeSubscribe(Observable.java:7710)
W/System.err: at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
W/System.err: at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err: at java.lang.Thread.run(Thread.java:818)
方法主體是你想註冊相同的使用一遍又一遍? – Blackbelt
沒有。在這種情況下,服務器回覆此Json '用戶名':[ 「用戶名已被佔用。」 ], 「電子郵件」:[ 「電子郵件已被採納。」 ] }' –