HarmonyOS鸿蒙Next中使用本地模拟器进行post请求,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072(内网环境),但是使用postman可以请求成功
HarmonyOS鸿蒙Next中使用本地模拟器进行post请求,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072(内网环境),但是使用postman可以请求成功
public static void sendPostRequest(String urlString, String jsonParams, OnRequestResultListener onRequestResultListener) {
netManager = NetManager.getInstance(null);
if (!netManager.hasDefaultNet()) {
return;
}
onRequestResultListener.startRequest();
ThreadPoolUtil.submit(() -> {
NetHandle netHandle = netManager.getDefaultNet();
netManager.addDefaultNetStatusCallback(callback);
HttpURLConnection connection = null;
try {
//url
URL url = new URL(urlString);
URLConnection urlConnection = netHandle.openConnection(url, Proxy.NO_PROXY);
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;
}
// 设置超时时间
connection.setConnectTimeout(COUN_TIME_OUT);
connection.setReadTimeout(READ_TIME_OUT);
//设置请求参数
//postParams(connection, params);
connection.setRequestMethod("POST");
// 设置通用请求类型
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connection.setRequestProperty("Charset", "UTF-8");
// 设置链接状态
connection.setRequestProperty("connection", "keep-alive");
// post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
connection.setDoOutput(true);
// 设置是否从httpUrlConnection读入,默认情况下是true;
connection.setDoInput(true);
// Post 请求不能使用缓存
connection.setUseCaches(false);
// 设置本次连接是否自动处理重定向
connection.setInstanceFollowRedirects(true);
connection.connect();
if (!TextUtils.isEmpty(jsonParams) && jsonParams.getBytes("utf-8").length > 2) {
OutputStream out = connection.getOutputStream();
out.write(jsonParams.getBytes("utf-8"));//把这个字节数组的数据写入缓冲区中
out.flush();//刷新缓冲区,发送数据
}
if (connection.getResponseCode() == 200) {
// 获取返回流
String result = getResult(urlConnection.getInputStream());
builder.append(urlString).append("::::::::::").append(jsonParams).append("::::::::::").append(result).append("\n");
onRequestResultListener.onSuccess(result);
} else {
// 获取返回流
String result = getResult(urlConnection.getInputStream());
builder.append(urlString + "::::::::::" + result).append("\n");
onRequestResultListener.onFail("数据错误:" + result + "======" + connection.getResponseCode());
}
} catch (Exception e) {
builder.append(urlString + "::::::::::" + e.toString()).append("\n");
onRequestResultListener.onFail(e.toString());
} finally {
onRequestResultListener.endRequest();
}
});
}
更多关于HarmonyOS鸿蒙Next中使用本地模拟器进行post请求,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072(内网环境),但是使用postman可以请求成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,您的问题需要进一步定位,请您通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持。
更多关于HarmonyOS鸿蒙Next中使用本地模拟器进行post请求,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072(内网环境),但是使用postman可以请求成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中使用本地模拟器进行POST请求时,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072
,可能有以下原因:
-
网络权限未配置:检查
config.json
文件中是否已声明网络权限。确保ohos.permission.INTERNET
权限已正确配置。 -
模拟器网络配置问题:本地模拟器可能存在网络配置问题,导致无法访问指定IP和端口。确保模拟器的网络环境与物理机一致,且IP地址和端口可访问。
-
防火墙或安全策略限制:检查防火墙或安全策略是否阻止了模拟器的网络请求。确保模拟器的网络请求未被拦截。
-
DNS解析问题:模拟器可能无法正确解析内网IP地址。尝试使用IP地址而非域名进行请求,或检查模拟器的DNS配置。
-
端口占用或服务未启动:确保目标端口13072未被占用,且服务已正确启动。使用
netstat
或类似工具检查端口状态。 -
代码问题:检查代码中是否存在URL拼写错误或其他逻辑问题,确保请求地址和参数正确。
Postman可以成功请求,表明服务端和网络环境正常,问题可能出在模拟器配置或代码实现上。
在HarmonyOS鸿蒙Next中使用本地模拟器进行POST请求时,报错java.net.ConnectException: Failed to connect to /192.168.153.2:13072
,可能是由于以下原因:
-
网络权限:确保在
config.json
中已添加网络权限:"reqPermissions": [ { "name": "ohos.permission.INTERNET" } ]
-
模拟器网络配置:检查模拟器的网络配置,确保其与主机在同一网络段,并能访问目标IP。
-
防火墙或安全软件:确认防火墙或安全软件未阻止模拟器的网络访问。
-
代码问题:检查代码中URL和端口是否正确,确保请求方法为POST。
-
模拟器限制:某些模拟器可能有网络访问限制,尝试使用真机测试。
如果Postman可以成功请求,说明服务端正常,问题可能出在模拟器或代码配置上。