我必须使用Reform2创建/注册新用户我的服务器端是
<?php
$name= $_POST['name'];
$email = $_POST['email'];
$password= $_POST['password'];
$gender= $_POST['gender'];
$con = mysqli_connect("localhost", "root", "qwerty", "db");
$query= mysqli_query($con, "INSERT INTO users(name,email, password, gender) VALUES('$name','$email', '$password', '$gender')");
if($query){
echo "You are sucessfully Registered";
}
else{
echo "your details could not be registered";
}
mysqli_close($con);
?>
我的模型课是
public class User {
@SerializedName("name")
@Expose
public String name;
@SerializedName("email")
@Expose
public String email;
@SerializedName("password")
@Expose
public String password;
@SerializedName("gender")
@Expose
public String gender;
public User(String name, String email, String password, String gender) {
this.name = name;
this.email = email;
this.password = password;
this.gender = gender;
}
在职岗位为
@POST("register.php")
Call<User> createUser(@Body User user);
将数据过帐为
mRegisterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (validateForm()){
mUserCall = mRestManager.getJobService()
.createUser(new User(mNameEditText.getText().toString(),
mEmailEditText.getText().toString(),
mPasswordEditText.getText().toString(),
mGenders[position]));
mUserCall.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
User user1 = response.body();
Toast.makeText(getApplicationContext(), user1.name , Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Log.e("REGISTER_ERROR", "Message is " + t.getMessage() );
}
});
}
}
});
我出错了
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
我找到了一些解决方案,并做出了相应的改变
@FormUrlEncoded
@POST("register.php")
Call<User> createUser(@Field("name") String name,
@Field("email") String email,
@Field("password") String password,
@Field("gender") String gender);
但它也不起作用,同样的错误消息,如何解决这个错误。
检查您的回答,它与您预期的不同。
Json必须从“{”开始,而且响应与您的Pojo用户不同,所以从新响应创建新Pojo。
我还得到了BEGIN\u对象,但在第1行第1列路径$处出现了字符串错误,尽管我知道服务器返回的是有效的json。
经过几个小时的调试,我发现这是由于我将接受编码:gzip头设置为请求。这实际上告诉okhttp不要解压缩响应,调用方将自己解压缩。由于这个原因,gson试图反序列化解压后的响应,所以失败也就不足为奇了。
我看到这个问题很多次了,但还是不明白。看起来我在现场发送请求,但它的正文不正确。但为什么呢?可能我不清楚改造是如何工作的,但我不是只是收集请求的链接并等待服务器的答案吗?这是链接:这里 带有请求的接口 和带有基本URL的类 改装构建类 JSON是通过这个解析的 主要活动是: 日志: 那么,如果请求错误,我应该为正常工作更改什么?
我试图只获取字符串请求,但它的给定错误如下 我的API输出如下: 响应代码:
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
从Android改型读取JSON字符串时出现问题。
我在我的Android应用程序中使用okhttp改造来进行网络请求。在其中一个请求中,我收到以下错误: com.google.gson.java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行列1路径$ 我在日志中看到201响应,但Retrofit抛出此错误。下面是我的代码。 signupParams值为-- 我已经用jsonLint测试了这个json
我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在中发送才能获取数据的JSON。 它在postman中工作,但在Android中,我有以下错误: 我想这是我的模型中的一个问题,但我无法修复它。 我的型号: 还有两种型号用于排序和筛选。我使用改装 我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers