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