Java 如何使用JSON发出HTTP POST请求?

Java 如何使用JSON发出HTTP POST请求?,java,json,http,post,Java,Json,Http,Post,我懂Java,但在连接web应用程序方面完全没有经验。我如何接受下面的HTTP POST请求并将其设置为JSON?总体目的是将信息从Java应用程序发送到在线RubyonRails SQLite3数据库 import java.io.*; import java.net.*; public class HTTPPostRequestWithSocket { public void sendRequest() { try { String para

我懂Java,但在连接web应用程序方面完全没有经验。我如何接受下面的HTTP POST请求并将其设置为JSON?总体目的是将信息从Java应用程序发送到在线RubyonRails SQLite3数据库

import java.io.*;
import java.net.*;

public class HTTPPostRequestWithSocket {
    public void sendRequest() {
        try {
            String params = URLEncoder.encode("param1", "UTF-8") + "="
                          + URLEncoder.encode("value1", "UTF-8");
            params += "&" + URLEncoder.encode("param2", "UTF-8") + "="
                          + URLEncoder.encode("value2", "UTF-8");

            String hostname = "nameofthewebsite.com";
            int port = 80;

            InetAddress addr = InetAddress.getByName(hostname);
            Socket socket = new Socket(addr, port);
            String path = "/nameofapp";

            // Send headers
            BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(
                    socket.getOutputStream(), "UTF8"));
            wr.write("POST " + path + " HTTP/1.0rn");
            wr.write("Content-Length: " + params.length() + "rn");
            wr.write("Content-Type: application/x-www-form-urlencodedrn");
            wr.write("rn");

            // Send parameters
            wr.write(params);
            wr.flush();

            // Get response
            BufferedReader rd = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
            String line;

            while ((line = rd.readLine()) != null) {
                System.out.println(line);
            }

            wr.close();
            rd.close();
            socket.close(); // Should this be closed at this point?
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

不能使用JSON发出POST请求。JSON是一种数据序列化格式,通过HTTP传输,HTTP可以使用POST或GET(或其他)请求。为什么这是一个红宝石问题?目标主机与此无关,因为您使用的是HTTP和JSON等标准。您的问题不清楚。您好,Dwayne。谢谢你的回复。您说过JSON是“通过HTTP传输的”,可以使用POST请求。那么,如何使用上面显示的HTTP POST请求代码传输JSON呢?