【发布时间】:2013-11-21 10:19:58
【问题描述】:
我正在尝试将 post 方法中的 URL 中的两个参数传递给 http 连接,但没有获得任何成功,任何人都可以帮我解决代码是
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// add request header
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
JsonObject requestData = new JsonObject();
requestData.addProperty("email", "nitin@eye-watch.in");
requestData.addProperty("name", "nitin malik");
requestData.addProperty("phone_no", "9540825737");
File fileToUpload = new File("/home/nitin/Desktop/clientdcs.jpg");
String urlParameters = "form=" + requestData.toString() + "&file=" + fileToUpload;
// Send post request
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
【问题讨论】:
-
记得form-encode你的数据:
String urlParameters = "form=" + URLEncoder.encode(requestData.toString(), "UTF-8") + "&file=" + URLEncoder.encode(fileToUpload, "UTF-8"); -
URLEncoder.encode(fileToUpload, "UTF-8");文件不支持此项。
-
改成
URLEncoder.encode(fileToUpload.toString(), "UTF-8")。 -
如何访问 HttpServlet 中请求对象中的 urlParameters,通过执行 URLEncoder.encode(fileToUpload.toString(), "UTF-8") 文件现在是字符串格式。获取我拥有的真实文件解码文件。或 servlet 3.0 对此有好处吗?
-
通过这样做,我可以在请求中发送数据 String urlParameters = "form=" + URLEncoder.encode(mainData.toString(),"UTF-8") + "&file=" +URLEncoder .encode(fileToUpload.toString(),"UTF-8");但是当我尝试通过 String ufl = request.getParameter("file");那个时候 /home/nitin/Desktop/clientdcs.jpg 如何在文件中输入 /*String urlParameters = "form=" + URLEncoder.encode(mainData.toString(),"UTF-8") + "&file=" ;*/ // 发送 post 请求 DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush();
标签: java http jakarta-ee servlets