写一个java方法,访问公网ip端口传递json
时间: 2023-10-29 14:06:05 浏览: 31
以下是一个示例Java方法,它使用Java的HttpURLConnection类访问公共IP地址的端口,并将JSON数据作为请求正文发送:
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MyJsonRequest {
public static void sendJsonRequest(String json) throws Exception {
String url = "http://<public_ip_address>:<port>/endpoint"; // 替换为公网IP地址和端口号以及目标端点
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 设置请求方法和头信息
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
// 发送JSON数据
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(json);
wr.flush();
wr.close();
// 获取响应
int responseCode = con.getResponseCode();
System.out.println("响应代码: " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 打印响应
System.out.println("响应内容: " + response.toString());
}
}
```
要使用此方法,请将`<public_ip_address>`替换为公共IP地址,`<port>`替换为端口号,并将`<endpoint>`替换为目标端点。然后,调用该方法并传递您的JSON字符串作为参数。例如:
```java
String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
MyJsonRequest.sendJsonRequest(json);
```