Java 如何使用Jetty http客户端发布json作为请求主体?
我一直坚持将JSON添加到POST请求主体中。只是没有任何方法可以设置请求的主体 我有没有办法做到这一点。否则,我不得不使用码头 以下是我如何提出我的帖子请求:Java 如何使用Jetty http客户端发布json作为请求主体?,java,post,jetty,Java,Post,Jetty,我一直坚持将JSON添加到POST请求主体中。只是没有任何方法可以设置请求的主体 我有没有办法做到这一点。否则,我不得不使用码头 以下是我如何提出我的帖子请求: Request request = httpClient.POST(url); //request.method(HttpMethod.POST); request.header(HttpHeader.ACCEPT, "application/json"); request.header(
Request request = httpClient.POST(url);
//request.method(HttpMethod.POST);
request.header(HttpHeader.ACCEPT, "application/json");
request.header(HttpHeader.CONTENT_TYPE, "application/json");
// Add basic auth header if credentials provided
if (isCredsAvailable()) {
String authString = username + ":" + password;
byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());
String authStringEnc = "Basic " + new String(authEncBytes);
request.header(HttpHeader.AUTHORIZATION, authStringEnc);
}
request(send);
感谢您的帮助 我自己也能弄明白。解决方案一直盯着我看 添加了一行,一切正常:
// Set request body
request.content(new StringContentProvider(JSON_HERE), "application/json");
希望它对其他人也有帮助。谢谢
你解决了长期困扰我的问题
/*配置sslcontextfactory处理https请求*/
SslContextFactory sslContextFactory = new SslContextFactory();
HttpClient httpClient = new HttpClient(sslContextFactory);
httpClient.setFollowRedirects(false);
httpClient.start();
/*配置post请求的url、body、以及请求头*/
Request request = httpClient.POST("https://a1.easemob.com/yinshenxia/yinshenxia/users");
request.header(HttpHeader.CONTENT_TYPE, "application/json");
request.content(new StringContentProvider("{\"username\":\"jliu\",\"password\":\"123456\"}","utf-8"));
// request.param("username", "jliu");
// request.param("password", "123456");
ContentResponse response = request.send();
String res = new String(response.getContent());
System.out.println(res);
httpClient.stop();
你好许宗晖, 欢迎来到堆栈溢出。除了代码,你的答案还需要一些上下文;例如,你能解释一下它是如何以及为什么解决提问者的问题的吗?这将使它对他们更有用,也对其他正在寻找类似问题答案的网站读者更有用。