300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 模拟表单post提交

java 模拟表单post提交

时间:2023-04-24 01:41:01

相关推荐

java 模拟表单post提交

Java

/*** 模拟提交表单* @param url* @param sb*/public static String postByFormData(String url,StringBuffer sb){String responseMessage = "";StringBuffer response = new StringBuffer();HttpURLConnection httpConnection = null;OutputStreamWriter out = null;BufferedReader reader = null;try {URL urlPost = new URL(url);httpConnection = (HttpURLConnection) urlPost.openConnection();httpConnection.setDoOutput(true);httpConnection.setDoInput(true);// 参数长度太大,不能用get方式httpConnection.setRequestMethod("POST");// 不使用缓存httpConnection.setUseCaches(false);// URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数httpConnection.setInstanceFollowRedirects(true);// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的// 意思是正文是urlencoded编码过的form参数httpConnection.setRequestProperty("Connection", "Keep-Alive");// 设置请求头信息httpConnection.setRequestProperty("Charset", "UTF-8");// 设置边界String BOUNDARY = "----------" + System.currentTimeMillis();httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");httpConnection.connect();out = new OutputStreamWriter(httpConnection.getOutputStream(),"UTF-8");//写入参数,DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面out.write(sb.toString());System.out.println("send_url:" + url);System.out.println("send_data:" + sb.toString());// flush and closeout.flush();} catch (Exception e) {e.printStackTrace();} finally {try {if (null != out) {out.close();}if (null != reader) {reader.close();}if (null != httpConnection) {httpConnection.disconnect();}} catch (Exception e2) {e2.printStackTrace();}}try {reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(),"UTF-8"));while ((responseMessage = reader.readLine()) != null) {response.append(responseMessage);response.append("\n");}if (!"failure".equals(response.toString())) {System.out.println("success");} else {System.out.println("failue");}// 将该url的配置信息缓存起来System.out.println(response.toString());System.out.println(httpConnection.getResponseCode());} catch (IOException e) {e.printStackTrace();}return response.toString();}

测试

public static void main(args[]){

String url="/default/index/calculate-shipping-freight";StringBuffer sb=new StringBuffer();sb.append("toCountry="+ 2);//国家要传2字码sb.append("&toCity="+ "BERAT");sb.append("&logistics-check-express="+"UPS-GY");sb.append("&logistics-express-item[]="+"BH-HKDHL");sb.append("&packageWeight="+1);sb.append("&packageLength="+2);sb.append("&packageWidth="+3);sb.append("&packageHeight="+4);try {String post = postByFormData(url,sb);jsonResult.setValue(post);}catch ( Exception e){e.printStackTrace();}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。