mark java发起http请求的方式

原创 2018年01月03日 16:31:04

系统间的交互,除了webservice,最简单应该就是http方式。
比如微信平台、支付宝、微博、QQ的api调用。
常用的方式及example:

  • JDK 提供的机制
/**
 * 最简单的使用,参考:https://developer.android.com/reference/java/net/HttpURLConnection.html
 */
URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
    InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    readStream(in);
} finally {
    urlConnection.disconnect();
}
/**
 * 带cookie 的post请求
 * cookie设置是系统级别的,jvm通用
 **/
public static void main(String[] args) throws IOException, URISyntaxException {
    CookieManager cookieManager = new CookieManager();
    CookieHandler.setDefault(cookieManager);

    HttpCookie cookie = new HttpCookie("sso.dd.com", "b1846e53e99c7");
    cookie.setDomain(".dd.com");
    cookie.setPath("/");
    cookieManager.getCookieStore().add(new URI("http://erp.dd.com/"), cookie);

    URL url = new URL("http://erp.dd.com/portal/clock/clockInfo");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setReadTimeout(1000);
    connection.setConnectTimeout(1000);
    connection.setRequestMethod("POST");
    try {
        InputStream in = new BufferedInputStream(connection.getInputStream());
        readStream(in);
    } finally {
        connection.disconnect();
    }
}
/**
 * spring-web的封装
 * 参考:org.springframework.http.client.SimpleClientHttpRequestFactory
 * 参考:org.springframework.web.client.RestTemplate
 */
  • httpcomponents-client
/**
 * 重试机制,比如重试次数、根据Exception类型、或者动态调整重试请求
 **/
public static HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {

       public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
           System.out.println(exception.getMessage());
           if (executionCount <= 5) {
               // Do not retry if over max retry count
               return true;
           }
           return false;
       }
};

/**
 * 使用httpcomponents-client 发送get请求
 **/
public static void main(String[] args) throws IOException {
      // CloseableHttpClient httpClient = HttpClients.createDefault();
      CloseableHttpClient httpClient = HttpClients.custom().setRetryHandler(myRetryHandler).build();
      RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000).setConnectTimeout(1000).build();
      HttpGet httpget = new HttpGet("http://api.github.com/users/PivotalSoftware");
      httpget.setConfig(requestConfig);
      CloseableHttpResponse response = httpClient.execute(httpget);
      try {
          HttpEntity entity = response.getEntity();
          if (entity != null) {
              InputStream instream = entity.getContent();
              try {
                  readStream(instream);
              } finally {
                  instream.close();
              }
          }
      } finally {
          response.close();
      }
}

参考: 基础使用方式

  • okhttp

    // TODO

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tt50335971/article/details/78962687

java后台发起请求方式

转载至点击打开链接 使用HttpClient: NameValuePair nameValuePair1 = newBasicNameValuePair("name", "yang")...
  • lyd135364
  • lyd135364
  • 2015-11-22 11:46:40
  • 347

java发送http请求的四种方式

自己对知识的总结: 4种分别可发送get和post请求的方法 第1种:HttpURLConnection、 第2种:URLConnection、 第3种:HttpClient、 第4种:Socke...
  • qq_21068619
  • qq_21068619
  • 2017-12-12 10:06:46
  • 110

java发起http请求提交表单

  • 2013年08月27日 16:43
  • 2KB
  • 下载

jquery四种请求方式

jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象。 $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及...
  • paul342
  • paul342
  • 2016-03-03 21:46:57
  • 5809

java 常见几种发送http请求案例

下面是作者在工作中总结的几种比较常见的使用java语言发送http请求的方式,希望对大家有所帮助,代码或注解处有不对的地方,欢迎大家留言指正,共同学习共同成长,谢谢大家!...
  • u010197591
  • u010197591
  • 2016-05-18 09:45:42
  • 53092

http的8种请求方式

言佳节虽过,近日却无心于学,真乃大罪。糊涂三日,半梦半醒,虽正值当年,却忘青云之志,实在可悲可笑。为燕雀,虽不知鸿鹄之志,却亦不止蓬蒿之间,望时刻警之   最近有在学习request的相关内容,然而...
  • KUKI123321
  • KUKI123321
  • 2017-10-12 20:17:37
  • 229

Java中使用HttpURLConnection发起POST 请求

1.需求是调用远程的服务器来返回数据,开始想用前端来发送请求采用 jsonp或者cors,发现这两种都需要远程服务器代码有所改变,无奈用后台了。 代码: import java.io.Buffer...
  • itweiweiqi
  • itweiweiqi
  • 2017-05-25 10:37:18
  • 411

js请求的几种方式

在某些时候可能需要在js中发起http请求,那么有哪几种请求方式呢? 简要记录如下: 1.Jquery中的ajax请求:  $.post(url, queryString) $.get(url...
  • aitcax
  • aitcax
  • 2015-06-17 13:48:37
  • 4616

如何在java中发起http和https请求

一般调用外部接口会需要用到http和https请求。 一.发起http请求 1.写http请求方法 //处理http请求 requestUrl为请求地址 requestMethod请求方式,值为"...
  • guozili1
  • guozili1
  • 2017-01-03 15:47:02
  • 24735

Java发送http的get、post、put请求

1. HTTP GET请求/** * 向指定URL发送GET方法的请求 * * @param url 发送请求的URL * ...
  • qiqishuang
  • qiqishuang
  • 2016-06-12 10:31:44
  • 7241
收藏助手
不良信息举报
您举报文章:mark java发起http请求的方式
举报原因:
原因补充:

(最多只允许输入30个字)