通过方法 post 使用参数发出 HttpsURLConnection 请求
make an HttpsURLConnection request with parameters by method post
处理发送其参数的 https 页面
Java8u201 使用 HttpsURLConnection
String httpsURL = "https://www.wmtechnology.org/Consultar-RUC/";
URL myUrl = null;
String[][] parameter = { { "modo", "1" }, { "btnBuscar", "Buscar" }, { "nruc", "10460332759" } };
System.out.println(parameter.toString());
try {
myUrl = new URL(httpsURL);
HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(parameter.toString());
wr.flush();
wr.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
System.out.println(inputLine);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
returns 没有数据的页面
考虑使用为您处理底层 connection/request 的库。 Apache HTTP 客户端有一个流畅的 API 这将使代码更容易编写:
String result = Request
.Post("https://www.wmtechnology.org/Consultar-RUC/")
.bodyForm(Form
.form()
.add("modo", "1")
.add("btnBuscar", "Buscar")
.add("nruc", "10460332759")
.build())
.execute()
.returnContent()
.asString();
System.out.println(result);
这里有更多信息:https://hc.apache.org/httpcomponents-client-4.2.x/tutorial/html/fluent.html
此请求处理 return 个数据。
你错了就行
wr.writeBytes(parameter.toString());
因为 parameter.toString()
returns 字符串像 [[Ljava.lang.String;@1f554b06
而不是预期的 param1=value1¶m2=value2 etc.
所以将这部分更正为
String parameterString = Arrays.stream(parameter)
.map(pair -> pair[0] + "=" + pair[1])
.collect(Collectors.joining("&"));
wr.writeBytes(parameter.toString());
处理发送其参数的 https 页面
Java8u201 使用 HttpsURLConnection
String httpsURL = "https://www.wmtechnology.org/Consultar-RUC/";
URL myUrl = null;
String[][] parameter = { { "modo", "1" }, { "btnBuscar", "Buscar" }, { "nruc", "10460332759" } };
System.out.println(parameter.toString());
try {
myUrl = new URL(httpsURL);
HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(parameter.toString());
wr.flush();
wr.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
System.out.println(inputLine);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
returns 没有数据的页面
考虑使用为您处理底层 connection/request 的库。 Apache HTTP 客户端有一个流畅的 API 这将使代码更容易编写:
String result = Request
.Post("https://www.wmtechnology.org/Consultar-RUC/")
.bodyForm(Form
.form()
.add("modo", "1")
.add("btnBuscar", "Buscar")
.add("nruc", "10460332759")
.build())
.execute()
.returnContent()
.asString();
System.out.println(result);
这里有更多信息:https://hc.apache.org/httpcomponents-client-4.2.x/tutorial/html/fluent.html
此请求处理 return 个数据。
你错了就行
wr.writeBytes(parameter.toString());
因为 parameter.toString()
returns 字符串像 [[Ljava.lang.String;@1f554b06
而不是预期的 param1=value1¶m2=value2 etc.
所以将这部分更正为
String parameterString = Arrays.stream(parameter)
.map(pair -> pair[0] + "=" + pair[1])
.collect(Collectors.joining("&"));
wr.writeBytes(parameter.toString());