`

java http请求(一) ---- 工具

    博客分类:
  • JAVA
阅读更多

http请求(一) ---- 工具

  2  import  java.io.ByteArrayOutputStream;
  3  import  java.io.DataOutputStream;
  4  import  java.io.InputStream;
  5  import  java.net.HttpURLConnection;
  6  import  java.net.URL;
  7  import  java.net.URLEncoder;
  8  import  java.util.Map;
  9  import  android.util.Log;
 10  
 11  public   class  NetUtil {
 12  
 13       private   static   final  String TAG  =   " NetUtil " ;
 14       private   static   final   int  RESPONSE_OK  =   200 ;
 15      
 16       public   static  InputStream sendPostRequest(String urlPath,
 17              Map < String, String >  params, String encoding)  throws  Exception {
 18           //  String param = "method=save&id=24&name="
 19           //  + URLEncoder.encode("大圆", "UTF-8");
 20          StringBuilder sb  =   new  StringBuilder();
 21           for  (Map.Entry < String, String >  entry : params.entrySet()) {
 22              sb.append(entry.getKey()).append( " = " )
 23                      .append(URLEncoder.encode(entry.getValue(), encoding))
 24                      .append( " & " );
 25          }
 26          sb.deleteCharAt(sb.lastIndexOf( " & " ));
 27           byte [] data  =  sb.toString().getBytes();
 28          URL url  =   new  URL(urlPath);
 29          HttpURLConnection conn  =  (HttpURLConnection) url.openConnection();
 30          conn.setRequestMethod( " POST " );
 31          conn.setReadTimeout( 5   *   1000 );
 32          conn.setDoOutput( true );  //  发送POST请求, 必须设置允许输出
 33          conn.setUseCaches( false );
 34          conn.setRequestProperty( " Connection " " Keep-Alive " );  //  维持长链接
 35          conn.setRequestProperty( " Charset " " UTF-8 " );
 36           //  设置输入参数的大小,把参数转化为字节数组
 37          conn.setRequestProperty( " Content-Length " , String.valueOf(data.length));
 38           //  设置数据类型
 39          conn.setRequestProperty( " Content-Type " ,
 40                   " application/x-www-form-urlencoded " );
 41          
 42          DataOutputStream outStream  =   new  DataOutputStream(
 43                  conn.getOutputStream());
 44          outStream.write(data);
 45          outStream.flush();
 46          outStream.close();
 47           if  (conn.getResponseCode()  ==  RESPONSE_OK) {
 48               return  conn.getInputStream();
 49          }
 50           return   null ;
 51      }
 52  
 53       /*
 54       * 得到http返回的输入流,并且转化成String
 55        */
 56       public   static  String getTextContent(String urlPath, String encoding)
 57               throws  Exception {
 58          URL url  =   new  URL(urlPath);
 59          HttpURLConnection conn  =  (HttpURLConnection) url.openConnection();
 60          conn.setRequestMethod( " GET " );
 61          conn.setReadTimeout( 5   *   1000 );
 62           if  (conn.getResponseCode()  ==  RESPONSE_OK) {
 63              InputStream inStream  =  conn.getInputStream();
 64               byte [] data  =  readStream(inStream);
 65              System.out.println( new  String(data, encoding));
 66               return   new  String(data, encoding);
 67          }
 68           return   null ;
 69      }
 70  
 71       //  读取数据
 72       public   static   byte [] readStream(InputStream inStream)  throws  Exception {
 73          ByteArrayOutputStream outStream  =   new  ByteArrayOutputStream();
 74           byte [] buffer  =   new   byte [ 2048 ];
 75           int  length  =   - 1 ;
 76           while  ((length  =  (inStream.read(buffer)))  !=   - 1 ) {
 77              outStream.write(buffer,  0 , length);
 78          }
 79          outStream.close();
 80           return  outStream.toByteArray();
 81      }
 82  
 83       //  直接返回http得到的输入流
 84       public   static  InputStream getStreamContent(String urlPath, String encoding)
 85               throws  Exception {
 86          InputStream inStream  =   null ;
 87          URL url  =   new  URL(urlPath);
 88          HttpURLConnection conn  =  (HttpURLConnection) url.openConnection();
 89          conn.setRequestMethod( " GET " );
 90          conn.setReadTimeout( 5   *   1000 );
 91           if  (conn.getResponseCode()  ==  RESPONSE_OK) {
 92              inStream  =  conn.getInputStream();
 93          }
 94           return  inStream;
 95      }
 96  
 97       public   static   void  print(String tag, String msg) {
 98          Log.d(tag, msg);
 99      }
100  }
101

分享到:
评论

相关推荐

    java-http请求jar包

    这个"java-http请求jar包"实际上就是Apache HttpClient的4.5.5版本,一个包含了所有必要组件的压缩文件。 Apache HttpClient库提供了对HTTP协议的全面支持,包括GET、POST、PUT等各种HTTP方法,以及Cookie管理、...

    java-property-utils-1.9.1.jar,java-property-utils-1.10.jar

    Java Property Utils是Java开发中的一个实用工具库,主要用于处理和操作Java系统属性和配置文件。在给定的场景中,`java-property-utils-1.9.1.jar` 和 `java-property-utils-1.10.jar` 是这个库的两个不同版本,...

    cors-filter-2.5 + java-property-utils-1.9.1.zip

    总结来说,这个压缩包提供了一个处理跨域请求的Filter实现,结合了对Java属性文件的读取工具,以便于在Tomcat服务器上配置和管理CORS策略。开发者可以利用这些工具轻松地控制跨域访问,提升Web应用的交互性。

    Java Https工具类,Java Https Post请求

    总结来说,`HttpsUtils.java`是一个用于简化Java程序中HTTPS POST请求的工具类,它隐藏了复杂的SSL/TLS配置和HTTP连接管理,使得开发者可以更加专注于业务逻辑。在实际开发中,此类可以帮助提高代码的可读性和可维护...

    google-http-java-client-1.13.1-beta

    "google-http-java-client-1.13.1-beta" 是Google官方发布的一个Java库,主要用于在Android平台上进行HTTP网络通信。这个库包含了丰富的工具类,能够帮助开发者方便地实现各种HTTP请求,从而满足Android应用中的网络...

    java发送http请求工具类

    本篇文章将详细讲解一个简单的Java工具类,用于发送HTTP请求,该工具类名为HttpURLUtils。 首先,让我们理解HTTP协议的基本概念。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义了客户端(如...

    java 发送https get请求工具类

    java 发送https get请求工具类

    java-property-utils-1.9.1.jar

    总的来说,`java-property-utils-1.9.1.jar`是一个实用的工具,它简化了Java Web应用中处理跨域问题的过程。通过与Java属性文件的交互,开发者可以更灵活地控制CORS策略,使得不同源的客户端可以安全地访问服务器...

    Java Http请求传json数据乱码问题的解决

    在Java进行HTTP请求时,通常会遇到数据传输出现乱码的问题,尤其是在使用JSON格式传输数据,且数据中包含中文字符时更为常见。在HTTP协议中,字符编码的正确处理对于数据的正确传输至关重要。以下将详细介绍在Java中...

    java模拟发送form-data的请求方式

    Java 提供了多种模拟发送 Form-Data 的请求方式,下面将介绍其中的一种使用 Apache HttpComponents 库的方法。 首先,需要导入 Apache HttpComponents 库的相关依赖项,包括 `httpclient` 和 `httpmime`。 ```java...

    使用wx-java-miniapp-spring-boot-starter开发的微信小程序演示demo.zip

    请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则...

    java-property-utils-1.9.1.zip

    Java 属性工具库(java-property-utils)是一个用于处理 Java 应用程序属性的实用程序库,版本为 1.9.1。这个库提供了方便的方法来读取、解析、操作和管理 Java 的属性文件。在开发过程中,我们经常需要与....

    php-java-bridge_7.2.1_documentation.zip

    2. **启动Java Bridge服务器**:通过Java命令行启动JavaBridge.jar,这会启动一个监听特定端口的HTTP服务器,等待PHP的请求。 3. **配置PHP**:在PHP中,你需要包含Java.inc文件,并设置一些配置参数,如Java服务器...

    cors-filter-1.7.jar 和 java-property-utils-1.9.jar

    而`java-property-utils-1.9.jar` 提供了一些用于处理Java属性文件的工具类,这些工具在配置CORS过滤器时可能会用到,例如读取配置文件中的CORS策略。 在配置CORS过滤器时,首先需要将这两个库添加到项目的类路径中...

    google-http-java-client-1.13.1-beta.zip

    "google-http-java-client-1.13.1-beta.zip" 是一个包含Google HTTP Java客户端库的压缩包,这个库主要用于Java开发者与Google的HTTP API进行交互。它提供了简单且强大的方式来构建网络请求,处理响应,并集成到Java...

    aliyun-java-sdk-core-4.1.0.jar 阿里大于短信发送的依赖包

    在这个场景中,"aliyun-java-sdk-core-4.1.0.jar" 是一个Java版本的核心SDK,主要用于与阿里大于的各项服务进行交互,特别是短信发送功能。 一、阿里大于SDK核心功能 1. **身份验证**:SDK提供了基于AccessKey的...

    JAVA http请求工具类

    总之,一个良好的Java HTTP请求工具类应该易于使用,具有灵活性,能够处理各种HTTP请求类型,并能有效地处理网络异常和响应数据。通过理解这些基本概念和最佳实践,开发者可以构建出强大的网络通信模块。

    cors-filter-1.7.jar和java-property-utils-1.9.jar

    其次,`java-property-utils-1.9.jar` 是一个用于处理Java属性文件的工具库。在Java应用程序中,属性文件通常用来存储配置信息,如数据库连接字符串、用户名和密码等。这个库提供了方便的方法来读取、写入和操作这些...

    JavaMelody javamelody-core-1.52.0.jar jrobin-1.5.9.jar

    JavaMelody是一款强大的Java应用程序性能监控工具,它可以帮助开发者和运维人员实时监控应用的运行状态,包括请求量、响应时间、内存使用、数据库查询效率等关键指标。在本案例中,我们关注的是两个核心的JAR文件:`...

    解决Tomcat跨域的jar包,java-property-utils-1.9.jar

    这里提到的`java-property-utils-1.9.jar`并不是直接解决跨域问题的库,但它可能在配置或辅助处理跨域问题的过程中起到一定作用,因为它是一个Java属性处理工具包。 `java-property-utils`这个库主要用来处理Java的...

Global site tag (gtag.js) - Google Analytics