通过浏览器访问的URL请求,都是GET请求,接下来代码是模拟POST发送请求

  1. import java.io.BufferedReader;
  2. import java.io.FileNotFoundException;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.HttpURLConnection;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9.  
  10. public class HttpMethod {
  11.  
  12. public static String executeRule(String url,String id,String analyzeModelType,String paramJson){
  13. String params =generateParams(id,analyzeModelType,paramJson);
  14. //System.out.println(params);
  15. try {
  16. sendPost(url,params);
  17. return "Execute Sucessfully!";
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. return "Execute Failed!";
  21. }
  22. }
  23.  
  24. /**
  25. * 获取和组装参数
  26. */
  27. private static String generateParams(String id, String analyzeModelType, String paramJson){
  28. StringBuffer sb =new StringBuffer();
  29. sb.append("id=");
  30. sb.append(id);
  31. sb.append("&analyzeModelType=");
  32. sb.append(analyzeModelType);
  33. sb.append("&paramJson=");
  34. sb.append(paramJson);
  35. return sb.toString();
  36. }
  37.  
  38. private static String sendPost(String url, String param) {
  39. PrintWriter out = null;
  40. BufferedReader in = null;
  41. String result = "";
  42. try {
  43. URL realUrl = new URL(url);
  44. URLConnection conn = realUrl.openConnection();
  45. // 设置通用的请求属性
  46. conn.setRequestProperty("accept", "*/*");
  47. conn.setRequestProperty("connection", "Keep-Alive");
  48. conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  49. conn.setDoOutput(true);
  50. conn.setDoInput(true);
  51. out = new PrintWriter(conn.getOutputStream());
  52. out.print(param);
  53. out.flush();
  54. try {
  55. in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  56. } catch (FileNotFoundException exception) {
  57. java.io.InputStream err = ((HttpURLConnection) conn).getErrorStream();
  58. if (err == null) throw exception;
  59. in = new BufferedReader(new InputStreamReader(err));
  60. }
  61. String line;
  62. while ((line = in.readLine()) != null) {
  63. result += line;
  64. }
  65. } catch (Exception e) {
  66. System.out.println("发送 POST 请求出现异常!"+e);
  67. e.printStackTrace();
  68. }
  69. finally{
  70. try{
  71. if(out!=null){
  72. out.close();
  73. }
  74. if(in!=null){
  75. in.close();
  76. }
  77. }
  78. catch(IOException ex){
  79. ex.printStackTrace();
  80. }
  81. }
  82. return result;
  83. }
  84.  
  85. }
  86.  
  87. //调用代码
    HttpMethod.executeRule(Constant.ANALYZEURL, id, analyzeModelType, URLEncoder.encode(paramJson,"UTF-8"));
    //若果参数中有json串,则需要将其用URLEncoder编码

发送Post的请求代码的更多相关文章

  1. 如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查

    我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java 代码发送的HTTP请求明细的情况.和javascript代码在浏览器里发送请求可以 ...

  2. wemall doraemon中Android app商城系统向指定URL发送GET方法的请求代码

    URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...

  3. 如果调用ASP.NET Web API不能发送PUT/DELETE请求怎么办?

    理想的RESTful Web API采用面向资源的架构,并使用请求的HTTP方法表示针对目标资源的操作类型.但是理想和现实是有距离的,虽然HTTP协议提供了一系列原生的HTTP方法,但是在具体的网络环 ...

  4. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案

    第一次调用webapi出错如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// ...

  5. 使用 HttpWebRequest 发送模拟 POST 请求

    使用HttpWebRequest发送模拟POST请求  网页中,如果form的method="POST",这时点击submit按钮可以给服务器发送了一个POST请求,如果metho ...

  6. java发送http get请求的两种方式

    长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) thro ...

  7. python发送HTTP POST请求

    1. 127.0.0.1和0.0.0.0 127.0.0.1是一个回送地址,指本地机,一般用来本机测试使用,使用127.0.0.1启的服务只能在本地机器上访问,使用0.0.0.0启的服务可以在其他机器 ...

  8. Node.js 0.12: 正确发送HTTP POST请求

    Node.js 0.12: 正确发送HTTP POST请求 本文针对版本:Node.js 0.12.4 之前写过一篇Node.js发送和接收HTTP的GET请求的文章,今天再写一篇,讲发送POST的请 ...

  9. Java发送HTTP POST请求示例

    概述: http请求在所有的编程语言中几乎都是支持的,我们常用的两种为:GET,POST请求.一般情况下,发送一个GET请求都很简单,因为参数直接放在请求的URL上,所以,对于PHP这种语言,甚至只需 ...

随机推荐

  1. lcd1602如何自定义汉字(verilog)

    今天一鼓作气,再研究了一下如何用LCD1602自定义汉字 1.用字模软件获取汉字所对应的数据(因为嫌麻烦所以直接用了网上一个帖子里有关“电”的数据,如下:04,1f,15,1f,15,15,1f,04 ...

  2. [oldboy-django][2深入django]班级管理(Form)--查看

    1 需求:django实现班级管理:查看(分页): 数据库采用django自带的sqlite3 2 数据库表创建 from django.db import models class Classes( ...

  3. CodeForces Round #515 Div.3 B. Heaters

    http://codeforces.com/contest/1066/problem/B Vova's house is an array consisting of nn elements (yea ...

  4. 【Luogu】P3750分手是祝愿(期望DP)

    题目链接 这题好喵啊…… 设f[i]是最少用i次才能全关上转移到最少用i-1次才能全关上灯的期望值,那么n个灯里有i个是正确的,剩下的都是不正确的 因此期望是$f[i]=frac{n}{i}+frac ...

  5. php中memcache扩展及memcached扩展的区别

    1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的.与之对应的带d的memcached是建立在libmemcached的基础 ...

  6. shell if 条件语句实践

    对于if 语法 我们不过多做介绍,这里直接上实例,以开发rsync服务启动脚本为例,先对rsync做个简单介绍 [root@backup ~]# rpm -qa|grep rsync rsync--. ...

  7. 【10】【转】node 之 pipe机制----未理解

    转载地址:http://blog.csdn.net/vieri_32/article/details/48376547 前言 前几天别人请教我关于pipe的问题,我发现我虽然用了nodejs很久,但是 ...

  8. iOS之UITraitCollection

    UITraitCollection 为表征 size class 而生,用来区分设备.你可以在它身上获取到足以区分所有设备的特征. UITraitEnvironment 协议.UIContentCon ...

  9. 【HDOJ5956】The Elder(树形DP,斜率优化)

    题意:有一棵n个点的有根树,每条边上有一个边权.给定P,从i跳到它的祖先j的费用是距离的平方+P,问所有点中到根节点1的总花费最大值 n<=1e5,p<=1e6,w<=1e2 思路: ...

  10. POJ 2635 The Embarrassed Cryptographer (千进制,素数筛,同余定理)

    The Embarrassed Cryptographer Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15767   A ...