如何从客户端 Java 调用 PUT 方法?
How to call the PUT method from a client Java?
我有以下方法:
@PUT
@Path("/reduceEnergy/{id}/{action}")
String reduceEnergyConsumption(@PathParam("id") int id,
@PathParam("action") String action);
我想从客户端调用这个方法。 (以防万一,当我有一个 GET 方法时,我是这样写的:
String response = target.path("air_quality")
.path("reduceEnergy/"+action)
.request()
.accept(MediaType.TEXT_PLAIN)
.get(String.class);
System.out.println(response);
但现在我有了 PUT 方法。我是这样写的:
但我不知道如何完成或更正它
Response response = target.path("aqsensor")
.path("reduceEnergy/"+pr+"/"+action)
.request()
.accept(MediaType.TEXT_PLAIN)
.put(null);
System.out.println(response.getStatus());
感谢您帮助我找到解决方案。
你不能在put中发送null
,你需要发送一个Entity
给出端点的以下定义:
@Path("myresource")
public class MyResource {
@PUT
@Path("/reduceEnergy/{id}/{action}")
public String reduceEnergyConsumption(@PathParam("id") int id,
@PathParam("action") String action) {
System.out.println("id: " + id);
System.out.println("action: " + action);
return "";
}
}
你可以这样做:
Entity<String> userEntity = Entity.entity("", MediaType.TEXT_PLAIN);
Response response = target.path("myresource/reduceEnergy/10/action")
.request()
.put(userEntity);
System.out.println("Status: " + response.getStatus());
这个输出:
id: 10
action: action
Status: 200
我有以下方法:
@PUT
@Path("/reduceEnergy/{id}/{action}")
String reduceEnergyConsumption(@PathParam("id") int id,
@PathParam("action") String action);
我想从客户端调用这个方法。 (以防万一,当我有一个 GET 方法时,我是这样写的:
String response = target.path("air_quality")
.path("reduceEnergy/"+action)
.request()
.accept(MediaType.TEXT_PLAIN)
.get(String.class);
System.out.println(response);
但现在我有了 PUT 方法。我是这样写的:
但我不知道如何完成或更正它
Response response = target.path("aqsensor")
.path("reduceEnergy/"+pr+"/"+action)
.request()
.accept(MediaType.TEXT_PLAIN)
.put(null);
System.out.println(response.getStatus());
感谢您帮助我找到解决方案。
你不能在put中发送null
,你需要发送一个Entity
给出端点的以下定义:
@Path("myresource")
public class MyResource {
@PUT
@Path("/reduceEnergy/{id}/{action}")
public String reduceEnergyConsumption(@PathParam("id") int id,
@PathParam("action") String action) {
System.out.println("id: " + id);
System.out.println("action: " + action);
return "";
}
}
你可以这样做:
Entity<String> userEntity = Entity.entity("", MediaType.TEXT_PLAIN);
Response response = target.path("myresource/reduceEnergy/10/action")
.request()
.put(userEntity);
System.out.println("Status: " + response.getStatus());
这个输出:
id: 10
action: action
Status: 200