我在Tomcat 7上使用java 1.7, 我可以使用以下代码发送POST请求:
private void processSelectProductOnChange(ActionEvent e) {
URL obj;
HttpURLConnection con;
String urlParameters = "";
String url = "http://myservice.example.com/Service/New";
String userAgent = request.getHeader("User-Agent");
int accountId = 5;
try {
obj = new URL(url);
con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", userAgent);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
con.setRequestProperty("ServiceName", "myServiceName");
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
String json = getJSONObject(accountId);
wr.writeUTF(json);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
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 (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
private String getJSONObject(int accountId) throws UnsupportedEncodingException
{
JSONObject jobj = new JSONObject();
jobj.put("AccountId", String.valueOf(accountId));
jobj.put("ServiceId", String.valueOf(2));
jobj.put("ExpirationDate", "");
jobj.put("Description", "");
return jobj.toString();
}
现在我没有发送POST请求,而是想从我的网络应用程序打开一个新的浏览器窗口到URL,我该怎么办?
编辑:我忘了在新浏览器标签打开时我想要发出POST请求。
答案 0 :(得分:0)
据我所知,您无法使用浏览器的地址栏直接发送POST
请求。您可能需要使用Postman,Advanced REST客户端等插件。或者您可以使用直接HttpURLConnection
或http客户端库。
但是如果您想通过程序打开默认的Web浏览器,可以按照以下步骤操作(对于GET请求)
if(Desktop.isDesktopSupported())
{
Desktop.getDesktop().browse(new URI(your url here));
}
否则,您可以创建Process
并启动浏览器。