如何在sitebricks-client中发布正文?

时间:2012-09-16 20:38:55

标签: java rest post rest-client sitebricks

我正在使用sitebricks-client与Java中的REST API进行交互。我需要使用非空体进行POST。我如何在sitebricks中做到这一点?

2 个答案:

答案 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上的来源

https://github.com/dhanji/sitebricks/blob/master/sitebricks-client/src/main/java/com/google/sitebricks/client/WebClient.java

RGDS