java - HTTPServer 发布参数

标签 java httpserver

正在使用 HTTPServer 编写服务由com.sun.net.httpserver.HttpServer提供包裹。我需要将一些相当大的数据作为字节流发送到该服务(比如一百万个整数)。

我几乎搜索了所有可用的示例,都指向发送一个小GET请求在 URL 中。 我需要知道如何将数据发送为 POST要求。 另外,可以发送的数据有限制吗?

最佳答案

我建议使用 Apache HTTPClient 库(如果您不使用 Spring 进行 applet-servlet 通信),而不是上面答案中的持久 URL 连接

http://hc.apache.org/httpclient-3.x/

在此,您可以构建一个客户端并通过 HTTP 将序列化对象(例如序列化为 JSON 字符串: https://code.google.com/p/google-gson/ )作为 POST 请求发送到您的服务器:

public HttpResponse sendStuff (args) {
    HttpPost post = null;
    try {
        HttpClient client = HttpClientBuilder.create().build();

        post = new HttpPost(servletUrl);
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair(<nameString>, <valueString>));

        post.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse response = client.execute(post);
        response.getStatusLine().getStatusCode();
        return response;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

但是 Spring 可以为您节省大量时间和麻烦,因此我会推荐 check it out

关于java - HTTPServer 发布参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355138/

相关文章:

java - HashMap 的线程安全实现

c++ - 组合值和键以形成 json 对象

c - 编写我自己的 HTTP 服务器 - 如何查找文件的相对路径

tomcat - 我的 JUnit 测试如何找到我的 Tomcat 数据源?

javascript - 为什么我从 jQuery 和 HttpHandler 获取 html 标签?

java - 在选择用于实现仪表板的解决方案方面需要一些帮助

java - 将面板放置在网格布局上时如何消除面板之间的间隙?

java - 来自数据库的 Primefaces 树

java - 在 Android 运行时将字符串(文本)翻译成不同的 Lagunage

python - 为什么主机http服务器需要指定它托管的IP?