我正在用Spring Boot API/服务(Java)编写Android (Kotlin)应用程序。我在服务器上安装了Android客户端和restful Spring控制器。
问题:当我使用下面提供的客户端-服务器JSON可序列化模型发出POST请求时,服务给出“400”(错误请求)。目前我没有任何机会在服务器端记录Spring Boot的Web/调试输出,所以我唯一可以依赖和共享的是客户端日志和实际项目代码。
这是改装响应对象的日志,没有什么特别的:
Response{protocol=http/1.1, code=400, message=, url=https://my_url}
以下是Android客户端的模型代码(在两个模型中,一些名称相同的字段被相互重命名,以保持简单):
class ClientPrivateUserTO(val serviceId: Int?,
val propOne: String?,
val propTwo: String,
val propThree: String,
val propFour: String?,
val ownAIds: Iterable<Int>,
val ownBIds: Iterable<Int>) : Serializable
这是Retrofit客户端的请求乐趣:
@POST("/add_update")
fun addOrUpdate(@Body userTo: ClientPrivateUserTO): Call<UserTransactionResponse>
以下是Spring服务模型类:
public class PrivateAppUserTO implements Serializable {
private Integer serviceId;
private String propOne;
private String propTwo;
private String propThree;
private String propFour;
private Iterable<Integer> ownAIds;
private Iterable<Integer> ownBIds;
public PrivateAppUserTO() {}
public PrivateAppUserTO(@JsonProperty("serviceId") Integer serviceId,
@JsonProperty("propOne") String propOne,
@JsonProperty("propTwo") String propTwo,
@JsonProperty("propThree") String propThree,
@JsonProperty("propFour") String propFour,
@JsonProperty("ownAIds") Iterable<Integer> ownAIds,
@JsonProperty("ownBIds") Iterable<Integer> ownBIds) {
this.serviceId = serviceId;
this.propOne = propOne;
this.propTwo = propTwo;
this.propThree = propThree;
this.propFour = propFour;
this.ownAIds = ownAIds;
this.ownBIds = ownBIds;
}
public Integer getServiceId() {
return serviceId;
}
public void setServiceId(Integer serviceId) {
this.serviceId = serviceId;
}
public String getPropOne() {
return propOne;
}
public void setPropOne(String propOne) {
this.propOne = propOne;
}
public String getPropTwo() {
return propTwo;
}
public void setPropTwo(String propTwo) {
this.propTwo = propTwo;
}
public String getPropThree() {
return propThree;
}
public void setPropThree(String propThree) {
this.propThree = propThree;
}
public String getPropFour() {
return propFour;
}
public void setPropFour(String propFour) {
this.propFour = propFour;
}
public Iterable<Integer> getOwnAIds() {
return ownAIds;
}
public void setOwnAIds(Iterable<Integer> ownAIds) {
this.ownAIds = ownAIds;
}
public Iterable<Integer> getOwnBIds() {
return ownBIds;
}
public void setOwnBIds(Iterable<Integer> ownBIds) {
this.ownBIds = ownBIds;
}
}
下面是服务控制器代码:
@PostMapping(path="/add_update")
public @ResponseBody TransactionalResponseUserTO createOrUpdate(@RequestBody PrivateAppUserTO userTo) {
if (userTo.getServiceId() == null) return userService.createFromClientServerUser(userTo);
else return userService.updateFromClientServerUser(userTo);
}
上面的代码是不是做了明显错误的事情?
可以展开迭代吗
在此堆栈上编写客户端-服务器代码时,是否有一些我应该注意的瓶颈?
事先非常感谢。
好了,看起来原因是展开的< code > Iterable ——现在,当我切换到JSON对象中的< code>List时,所有工作都没有问题。
下面是发出请求的客户端函数,部分由于状态400而被阻止: 下面是一些来自控制台的Chrome材料:
我已经在Go中编写了一个简单的客户机/服务器,它将通过TLS执行HTTP GET,但我也试图使它能够通过TLS执行HTTP POST。 我现在也没有什么东西可以在服务器端处理这个帖子,但我只想让它把它打印到屏幕上,这样当我运行客户端时,我就会看到服务器打印。 我应该如何修复我的客户端代码来做一个适当的帖子?而相应的服务器代码应该是什么样子才能接受POST呢?任何帮助都将非常感谢,我有困难找到HTT
我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se
我有一个react本机应用程序,它使用与。NET Core2.1通信的signalR。 套接字连接没有任何错误。一切都很好。但是服务器不能响应客户端的ping消息,并返回504给客户端。当返回504时,客户端的连接关闭。在hubconnection.onclose()处理。然后客户端需要重新连接。 proxy_read_timeout可以设置为高毫秒。但很乱。 所以我不能在客户机上有效地使用kee
我正在尝试使用HTTP请求/响应用Java编写一个简单的客户机-服务器应用程序。我想客户端是一个桌面程序发送(张贴)请求到服务器。该服务器是一个网页,将被托管在Apache Tomcat服务器上。服务器必须能够读取信息并将其显示在浏览器上,并且必须能够用状态代码200响应客户端。我正在使用eclipse和Apache tomcat服务器。到目前为止,我已经尝试了各种资源,但我所能找到的是一个可以从
问题内容: 我有stfw,但是找不到在Java中创建Web服务客户端的简单/独立方法。 有人在此链接/示例吗? 问题答案: 使用Axis2怎么样? 只需按照快速入门指南进行操作,就可以轻松应对。 这是另一个更具描述性的指南