我正在建立一个新的android项目并使用改版,我的改版功能在模拟器(NOX)和邮递员中正常工作,但是当我尝试在移动设备中构建我的应用程序时,改版总是陷入失败,有人能给我解决方案吗?我的API发布在公共主机上,
这就是我所说的改装
private APIInterface getInterfaceService() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
final APIInterface mInterfaceService = retrofit.create(APIInterface.class);
return mInterfaceService;
}
private void loginInterface(final String username, final String password){
APIInterface mApiService = this.getInterfaceService();
Call<Response> mService = mApiService.loginRequest(username,password);
mService.enqueue(new Callback<Response>() {
@Override
public void onResponse(Call<Response> call, retrofit2.Response<Response> response) {
if(response.body().getValue()==1){
Toast.makeText(Login.this,"Welcome",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(),HomePage.class);
startActivity(intent);
finish();
}else{
Toast.makeText(Login.this,"Invalid Username or Password",Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
Toast.makeText(Login.this,t.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}
我的回应
public class Response {
@SerializedName("value")
@Expose
private Integer value;
@SerializedName("result")
@Expose
private List<User> result = null;
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public List<User> getResult() {
return result;
}
public void setResult(List<User> result) {
this.result = result;
}
}
public class User {
@SerializedName("id")
@Expose
private String id;
@SerializedName("username")
@Expose
private String username;
@SerializedName("password")
@Expose
private String password;
@SerializedName("email")
@Expose
private String email;
@SerializedName("image")
@Expose
private Object image;
@SerializedName("point")
@Expose
private String point;
@SerializedName("reputation")
@Expose
private String reputation;
@SerializedName("role")
@Expose
private String role;
public User(String id, String username, String password, String email, Object image, String point, String reputation, String role) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
this.image = image;
this.point = point;
this.reputation = reputation;
this.role = role;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Object getImage() {
return image;
}
public void setImage(Object image) {
this.image = image;
}
public String getPoint() {
return point;
}
public void setPoint(String point) {
this.point = point;
}
public String getReputation() {
return reputation;
}
public void setReputation(String reputation) {
this.reputation = reputation;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
public interface APIInterface {
@FormUrlEncoded
@POST("login.php")
Call<Response> loginRequest(@Field("username") String username,
@Field("password") String password);
}
android:usesCleartextTraffic="true"
{"value":1,"result":[{"id":"1","username":"username","password":"password","email":"email","image":null,"point":"0","reputation":"0","role":"2"}]}
这是我的邮差回复
当您试图在项目中使用翻新库时,您应该遵循的内容。
>
基本URL应以“/”结尾。
String BASEURL = "http://www.xxxxxxxx.com/"
当您实现修改的回调时。您需要通过检查if(response.issucessful())
来检查您的响应是否给出了200。
mService.enqueue(new Callback<Response>() {
@Override
public void onResponse(Call<Response> call, retrofit2.Response<Response> response) {
if(response.isSuccessful()){
if(response.body().getValue()==1){
Toast.makeText(Login.this,"Welcome",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(),HomePage.class);
startActivity(intent);
finish();
}else{
Toast.makeText(Login.this,"Invalid Username or Password",Toast.LENGTH_SHORT).show();
}
}else Toast.makeText(Login.this,response.errorBody().string(),Toast.LENGTH_SHORT).show(); // this will tell you why your api doesnt work most of time
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
Toast.makeText(Login.this,t.getMessage(),Toast.LENGTH_SHORT).show();
}
});
在你的邮递员,你包括9个头。你必须找出所有的9个头修改示例,并相应地将它们添加到你的API接口中。
注:-遵循这些事情,我想你会自己解决你的问题。
在更正以上所有说明后,请随时提出任何问题。
我正在使用调用web服务,而reverfit会引发一个失败,来自“throwable”的消息会给我 我假设这是因为.NET web服务抛出了一个错误而没有返回JSON。但是为了证明这一点,我需要能够看到中的原始响应。有没有什么我能做到的? 这是我使用的代码
HI我只是新来的改造服务,并遵循本教程https://www.simplifiedcoding.net/retrofit-android-tutorial-to-get-json-from-server/它工作得很好,想创建我自己的,所以我使用了一个新的json网络http://api.androidhive.info/contacts/,其中包含 我实现了自己的接口ContactAPI。Java
问题内容: 我正在尝试使用jQuery和JSON执行一些基本操作。目前,jQuery在从我的游戏框架应用程序接受JSON响应方面遇到困难。下面是仍然会产生错误的代码的简化版本。 错误回调总是被触发。它显示 错误…未调用parsererror jQuery15001997238997904205_1298484897373 通过Firebug检查返回的JSON不会显示任何错误,并且各种JSON li
改装版本:2.1.0 OkHttp版本:3.4.1 在我的Retromet实现的方法中,我有以下逻辑: 这里的是我自己的类型(与OkHttp的无关),它包装了一个泛型,其中是一个接口,它公开了一个方法,用于确认反序列化的响应满足给定的约束。 如果我收到一个表面上成功的响应(HTTP代码2XX、非空响应主体等)。),但其反序列化的主体没有通过此验证步骤(即返回false),我想呈现一个对话框,其消息
我想拦截改造引擎收到的所有响应,并扫描HTTP错误代码,例如错误403。 我知道我可以使用每个请求的failure(reformationerror error)回调并检查403,但我想将响应打包为全局响应。 我可以看到请求拦截是可能的,但我看不到类似的响应选项。 有什么建议吗?