我无法在改型中以行json格式发送数据。
我将改装版1.9迁移到2。在Retrfit1.9中,我可以使用HashMap发送原始json,但在改型2中,我使用HashMap发送,但无法将数据作为json发送。所以我用pojo来代替。
api生成试图获取非对象属性的日志,因此我无法在json行中传递数据。
我刚刚在错误日志中看到了我的服务器详细信息,我的请求自动转换为GET。我在POST中使用Reformation2、Reformation1.9和其他异步任务传递数据。我不知道为什么我的服务器被当作GET。从邮递员那里,一切正常。
任何帮助都会对我有用。谢谢
这是我的密码
我的pojo课请求
public class RegisterdUserData {
@SerializedName("userEmail")
@Expose
private String userEmail;
@SerializedName("userName")
@Expose
private String userName;
@SerializedName("firstName")
@Expose
private String firstName;
@SerializedName("lastName")
@Expose
private String lastName;
@SerializedName("userPassword")
@Expose
private String userPassword;
@SerializedName("userRole")
@Expose
private String userRole;
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getUserRole() {
return userRole;
}
public void setUserRole(String userRole) {
this.userRole = userRole;
}
要求
@Headers("Content-Type: application/json")
@POST("/api/CreateUser.php")
Call<AppUserData> CreateUser(@Body RegisterdUserData registerdUserData);
我的电话
private void CreateUser(String userEmail, String firstName, String lasName, String userName, String userPassword, String userRole) {
RegisterdUserData registerdUserData = new RegisterdUserData();
registerdUserData.setFirstName(firstName);
registerdUserData.setLastName(lasName);
registerdUserData.setUserEmail(userEmail);
registerdUserData.setUserName(userName);
registerdUserData.setUserPassword(userPassword);
registerdUserData.setUserRole(userRole);
util.http.CreateUser(registerdUserData).enqueue(new Callback<AppUserData>() {
@Override
public void onResponse(Call<AppUserData> call, Response<AppUserData> response) {
util.log(TAG, "" + response);
}
@Override
public void onFailure(Call<AppUserData> call, Throwable t) {
util.log(TAG, "" + t);
}
});
}
我建议您以Map的形式发送数据
在您的情况下:
Map<String,Object> requestBody = new HashMap()<>;
requestBody.put("userInfo", registerdUserData);
你的要求应该是:
@Headers("Content-Type: application/json")
@POST("/api/CreateUser.php")
Call<AppUserData> CreateUser(@Body Map<String,Object> registerdUserData);
还要交叉检查改造对象是如何构建的(在我的例子中是杰克逊)。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(JacksonConverterFactory.create())
.client(client)
.build();
如果您有任何疑问,请发表评论。
问题在于www。如果我删除它,那么它就可以正常工作。我不知道为什么。但是它帮助了我。感谢您的回复@Manikanta@AshutoshSaga
无法使用改型2.0在api数据中发送原始数据 MyInterface: 有人能推荐一种解决方案,使用在api中发送原始数据吗?我对改型还不熟悉;当我在方法中得到响应时,请提供帮助。
问题内容: 这是我的 在我的控制器中 但是当我在Chrome中看到“网络”标签时, 如何将其作为有效载荷发送?所以那URL是 和数据一样 我的端点希望数据是请求的一部分,以便可以将其解析为 问题答案: 我正在共享我的代码库中的代码,该代码在按照@lucuma的建议进行更改后有效 The UserService looks like and ProfileController looks like
问题内容: 我在从Java servlet内的JavaScript检索以JSON形式发送的数据时遇到查询。以下是我在做什么… 这是JavaScript内向Servlet发出请求的代码的一部分 在发出此请求时,我尝试检索从Servlet中的JavaScript发送的参数,但这样做时,我首先对如何从请求中检索数据感到困惑 我在servlet中使用了以下内容: 注意: 我的Servlet中的内容类型设置
无法在react native expo应用程序中以“Multipart/formdata”内容类型发送表单数据。当我们在react-native应用程序的post请求中发送formData对象时,我们无法获取req。需求主体。来自节点后端的文件
问题内容: 我正在制作一个需要以JSONP格式返回数据的Web服务。我正在使用JSP的JSON标记库,我以为所有必须添加的都是括号,但是我找不到一个很好的资源来验证这一点。 例如,曾经的Web服务功能都使用以下功能返回: 这样对吗? 谢谢! 问题答案: JSONP只是一种黑客,它允许Web应用程序跨域检索数据。可以说它违反了同源起源策略(SOP)。它的工作方式是使用Javascript将“ scr
这是为了与ecomdash api一起使用,因为使用此方法时,所有json字符串都必须用方括号括起来,就像有一个产品数组一样。因此,对于一系列产品来说,json_encode确实可以像预期的那样工作,但如果只更新一个产品,则必须手动在json周围添加方括号。因此,在设置请求时,必须使用body而不是json。这是最后一段有效的代码。 我已经到处搜索,尝试了一百万件事,但我一直得到相同的错误时,试图