写一个java方法,访问公网ip端口传递json
时间: 2023-06-02 12:01:50 浏览: 148
以下是一个示例方法,使用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 HttpJsonRequest {
public static void sendJsonRequest(String ipAddress, int port, String json) {
try {
String url = "http://" + ipAddress + ":" + port;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 设置请求方法为POST
con.setRequestMethod("POST");
// 设置请求头
con.setRequestProperty("Content-Type", "application/json");
// 发送POST请求
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(json);
wr.flush();
wr.close();
// 读取响应
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());
} catch(Exception e) {
System.out.println("发送请求出错:" + e);
}
}
}
```
调用该方法时,需要传入公网IP地址、端口号和要发送的JSON数据:
```java
String ipAddress = "192.168.1.100";
int port = 8080;
String json = "{\"name\":\"张三\",\"age\":25}";
HttpJsonRequest.sendJsonRequest(ipAddress, port, json);
```
注意:该方法只是一个示例,实际使用中需要根据具体情况修改代码。例如,可以将请求方法、请求头、请求体等参数封装成类成员变量,方便调用时设置。同时,需要处理异常、关闭资源等问题,以保证代码的健壮性。
阅读全文