我正在使用sitebricks-client与Java中的REST API进行交互。我需要使用非空体进行POST。我如何在sitebricks中做到这一点?
答案 0 :(得分:1)
您尚未指定要发布的请求正文。如果您尝试发送内容类型为“text / plain”的字符串,则以下内容应该有效:
String body = "Request body.";
WebResponse response = web.clientOf(url)
.transports(String.class)
.over(Text.class)
.post(body);
如果您尝试将已经序列化的特定类型的数据发送到String,则可以手动设置Content-Type标头:
String body = "{}";
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
WebResponse response = web.clientOf(url, headers)
.transports(String.class)
.over(Text.class)
.post(body);
如果你有一个包含你希望发送到Content-Type为“application / json”的服务器的数据的Map,那么像这样的东西可能就在你的小巷里:
Map body = new HashMap();
// Fill in body with data
WebResponse response = web.clientOf(url)
.transports(Map.class)
.over(Json.class)
.post(body);
上面的例子中有两点需要注意:
post
方法的值应该是传递给transports
方法的类型。over
方法的类确定Content-Type标头的默认值以及传递给post
方法的值的序列化方式。该类应该是com.google.sitebricks.client.Transport
的子类,您可能希望选择com.google.sitebricks.client.transport
包中的一个类。答案 1 :(得分:0)
我已经注意到了,但是在webclient中有一个post()方法。
web.clientOf("http://google.com")
...
.post(...);
查看github上的来源
RGDS