Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Jetty http客户端发布json作为请求主体?_Java_Post_Jetty - Fatal编程技术网

Java 如何使用Jetty http客户端发布json作为请求主体?

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(

我一直坚持将JSON添加到POST请求主体中。只是没有任何方法可以设置请求的主体

我有没有办法做到这一点。否则,我不得不使用码头

以下是我如何提出我的帖子请求:

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();

你好许宗晖, 欢迎来到堆栈溢出。除了代码,你的答案还需要一些上下文;例如,你能解释一下它是如何以及为什么解决提问者的问题的吗?这将使它对他们更有用,也对其他正在寻找类似问题答案的网站读者更有用。