我正在使用sitebricks-client与 Java 中的 REST API 进行交互。我需要用非空主体进行 POST。我如何在 sitebricks 中做到这一点?
最佳答案
您尚未指定您要尝试发布哪种类型的请求正文。如果您尝试发送内容类型为“text/plain”的字符串,则以下操作应该有效:
String body = "Request body.";
WebResponse response = web.clientOf(url)
.transports(String.class)
.over(Text.class)
.post(body);
如果您尝试发送已序列化为字符串的特定类型的数据,则可以手动设置 Content-Type header :
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);
如果您有一个包含要发送到内容类型为“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
方法的值应该是传递给transport
方法的类型。 - 传递给
over
方法的类决定 Content-Type header 的默认值以及传递给post
方法的值的序列化方式。该类应该是com.google.sitebricks.client.Transport
的子类,您可能需要选择com.google.sitebricks.client.transport 中找到的类之一
包。
关于java - 如何在 sitebricks-client 中发布正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450538/