`

通过HttpURLConnection使用Get和Post方法发送数据

    博客分类:
  • JAVA
 
阅读更多

 

Get方法发送数据

在Get类中

 

 

Java代码   收藏代码
  1. HttpURLConnection conn=(HttpURLConnection)new URL(path).openConnection();  
  2.         conn.setConnectTimeout(15000);  
  3.         conn.setRequestMethod("GET");  

 

测试方法

 

 

Java代码   收藏代码
  1. new Get("http://XXXXX/WebService/index/indexindex.action?id=1&name="+URLEncoder.encode("您好","utf-8")).setGetRequest()  

 

服务器端接收数据

 

 

Java代码   收藏代码
  1. HttpServletRequest request=ServletActionContext.getRequest();  
  2.         System.out.println(id);    
  3.         System.out.println(new String(name.getBytes("ISO-8859-1"),"utf-8"));  

 

 

Post方法发送数据

 

 

Java代码   收藏代码
  1. byte [] entity=("id=1&name="+URLEncoder.encode("您好","utf-8")).getBytes();  
  2.         HttpURLConnection conn=(HttpURLConnection)new URL(path).openConnection();  
  3.         conn.setConnectTimeout(5000);  
  4.         conn.setRequestMethod("POST");  
  5.         conn.setDoOutput(true);  
  6.         conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");//用于指导实体数据的内容类型  
  7.         conn.setRequestProperty("Content-Length",String.valueOf(entity.length));//entity为要传输的数据格式为  title=hello&time=20//可以对该数据编码  
  8.         OutputStream outStream=conn.getOutputStream();  
  9.         outStream.write(entity);  

 测试方法

 

 

Java代码   收藏代码
  1. new Post("http://XXXXXX/WebService/index/indexreceivePost.action").setPostRequest()  

 

服务器端接收数据

 

 

Java代码   收藏代码
  1. HttpServletRequest request=ServletActionContext.getRequest();  
  2.         System.out.println(id);   
  3.         request.setCharacterEncoding("utf-8");  
  4.         System.out.println(name);   

 

 

向服务器端传输xml数据

 

 

Java代码   收藏代码
  1. byte [] entity="<strings><id>1</id><name>hello</name></strings>".getBytes();  
  2.         HttpURLConnection conn=(HttpURLConnection)new URL(path).openConnection();  
  3.         conn.setConnectTimeout(5000);  
  4.         conn.setRequestMethod("POST");  
  5.         conn.setDoOutput(true);  
  6.         conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8");//用于指导实体数据的内容类型  
  7.         conn.setRequestProperty("Content-Length",String.valueOf(entity.length));  
  8.         OutputStream outStream=conn.getOutputStream();  
  9.         outStream.write(entity);  

 服务器端接收数据

 

 

Java代码   收藏代码
  1. HttpServletRequest request=ServletActionContext.getRequest();  
  2.         InputStream is=request.getInputStream();  

 

Notice:Get方式发送数据一般小于2K,如果大于2K,最好用Post方式

 

 

 

package com.hrtx.util;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamTool {
    /**
     * 从输入流中读取数据
     * @param inStream
     * @return
     * @throws Exception
     */
    public static byte[] readInputStream(InputStream inStream) throws Exception{
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while( (len = inStream.read(buffer)) !=-1 ){
            outStream.write(buffer, 0, len);
        }
        byte[] data = outStream.toByteArray();//网页的二进制数据
        outStream.close();
        inStream.close();
        return data;
    }
}

	public static void testAdd() throws IOException{
		String str = "http://localhost:8080/search/externalAccessServlet?";
        // 正文,正文内容其实跟get的URL中'?'后的参数字符串一致
//      String content = "firstname=" + URLEncoder.encode("一个大肥人", "utf-8");
		str = str+"cmd="+URLEncoder.encode("add", "utf-8");
		URL url = new URL(str);
		HttpURLConnection conn =  (HttpURLConnection) url.openConnection();
		 // http正文内,因此需要设为true
		conn.setDoInput(true);
		conn.setDoOutput(true);
        // Post 请求不能使用缓存
		conn.setUseCaches(false);
		conn.setRequestMethod("POST");// 提交模式
        // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
        // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
        // 进行编码
//		conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
	    conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8");		
		OutputStream os = conn.getOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(os);
		ServiceConfigPOJO pojo1 = new ServiceConfigPOJO("zzw",OpType.read, "192.168.32.133:13710");
		ServiceConfigPOJO pojo2 = new ServiceConfigPOJO("zzw",OpType.writer, "192.168.32.133:13710");
		List<ServiceConfigPOJO> list = new ArrayList<ServiceConfigPOJO>();
		list.add(pojo1);
		list.add(pojo2);
		oos.writeObject(list);
		oos.flush();
		oos.close();
		 // 要注意的是connection.getOutputStream会隐含的进行connect。
		BufferedInputStream ois = new BufferedInputStream(conn.getInputStream());
		byte[] b = new byte[1024];
		ois.read(b);
		System.out.println(new String(b,"UTF-8"));
	}
	
	public static void testUpdate() throws Exception{
		String str = "http://localhost:8080/search/externalAccessServlet?";
        // 正文,正文内容其实跟get的URL中'?'后的参数字符串一致
//      String content = "firstname=" + URLEncoder.encode("一个大肥人", "utf-8");
		str = str+"cmd="+URLEncoder.encode("update", "utf-8");
		URL url = new URL(str);
		HttpURLConnection conn =  (HttpURLConnection) url.openConnection();
		 // http正文内,因此需要设为true
		conn.setDoInput(true);
		conn.setDoOutput(true);
        // Post 请求不能使用缓存
		conn.setUseCaches(false);
		conn.setRequestMethod("POST");// 提交模式
        // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
        // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
        // 进行编码
//		conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
	    conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8");		
		OutputStream os = conn.getOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(os);
		ServiceConfigPOJO pojo1 = new ServiceConfigPOJO("zzw",OpType.read, "192.168.32.130:13710");
		oos.writeObject(pojo1);
		oos.flush();
		oos.close();
		 // 要注意的是connection.getOutputStream会隐含的进行connect。
		BufferedInputStream ois = new BufferedInputStream(conn.getInputStream());
		InputStream is = conn.getInputStream();
		byte[] b = readInputStream(is);
		System.out.println(new String(b,"UTF-8"));
//		
//		BufferedInputStream ois = new BufferedInputStream(conn.getInputStream());
//		ObjectInputStream ss = new ObjectInputStream(conn.getInputStream());
//		Object objct = ss.readObject();
//		System.out.println((Boolean)objct);
	}	



  


  
分享到:
评论

相关推荐

    网络请求----HttpURLConnection的get,post和图片加载

    下面我们将深入探讨HttpURLConnection的get、post方法以及图片加载的相关知识点。 1. HttpURLConnection GET请求: GET请求是最基础的HTTP请求方法,常用于获取服务器上的资源。使用HttpURLConnection进行GET请求...

    Http学习之使用HttpURLConnection发送post和get请求 android

    本篇文章主要聚焦于使用`HttpURLConnection`类来发送POST和GET请求,这是Android SDK内置的一种HTTP请求方法,相较于第三方库如OkHttp或Volley,使用`HttpURLConnection`更轻量级,易于理解和控制。 首先,我们先...

    Android端使用get post 方法提交数据到服务器demo

    本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...

    Android通过POST和GET向服务器发送数据

    通常,我们使用HTTP协议的两种主要方法:POST和GET来传输数据。本文将详细讲解如何在Android中实现这两种方法,并讨论使用普通HTTP协议和Android内置的HttpClient库的区别。 1. **POST方法**: - POST请求常用于...

    JAVA通过HttpURLConnection 上传和下载文件的方法

    JAVA通过HttpURLConnection上传和下载文件的方法 JAVA通过HttpURLConnection上传和下载文件的方法是非常有实用价值的,需要的朋友可以参考下。HttpURLConnection是一个Java类,用于从网络中读取数据或向网络中写入...

    android使用HTTPURLconnection/get方法访问HTTP

    POST请求通常用于向服务器发送数据,设置请求方法为"POST",并通过`setDoOutput(true)`开启输出流,然后使用`DataOutputStream`写入数据。不过,这已经超出了标题和描述的范围。 总结起来,Android开发者在使用`...

    androd httpurlconnection(工具类) get post t

    这个Demo主要展示了如何使用HTTPUrlConnection进行GET和POST请求,以及图片的下载操作。下面将详细讲解这些知识点。 首先,我们来看GET请求。GET是HTTP协议中最常见的请求方法,通常用于获取服务器上的资源。在...

    HttpURLConnectionTest_Get_Post(绝对可以用)

    在`HttpURLConnectionTest_Get_Post`这个项目中,可能包含了示例代码,演示了如何使用`HttpURLConnection`进行GET和POST操作。代码可能包括了如何处理请求头(如设置Content-Type、Accept等)、如何处理重定向、如何...

    Android httpUrlConnection Post方式访问网络简单demo

    2. **设置请求方法**:默认情况下,`HttpURLConnection`会使用GET方法,但我们需要POST,所以需要调用`setRequestMethod("POST")`。 3. **允许输出**:POST请求需要向服务器发送数据,因此需要调用`setDoOutput...

    HttpUrlConnection使用示例

    由于默认请求方法是GET,我们需要设置为POST: ```java connection.setRequestMethod("POST"); ``` ### 3. 设置连接属性 在POST请求中,我们可能需要设置一些连接属性,例如`Content-Type`来表明发送的数据格式:...

    http发送Get和Post请求工具类

    `sendPostRequest`方法通常会创建一个`HttpURLConnection`实例,设置请求方法为POST,打开连接,然后通过`setDoOutput(true)`允许写入数据。接着,使用`DataOutputStream`写入请求参数,最后读取服务器响应。 在`...

    android使用Java原生httpUrlConnection进行get请求

    在Android开发中,Java的HttpURLConnection是用于网络通信的一个基础组件,它提供了HTTP协议的低级别接口,可以用来执行GET、POST以及其他HTTP方法。在这个场景下,我们将详细探讨如何使用Java原生的...

    安卓网络通信之通过GET和POST方式提交参数给web应用

    GET和POST是HTTP协议中最常见的两种请求方法,用于向Web服务器发送数据。本文将详细介绍如何在Android中使用GET和POST方式来提交参数给Web应用。 首先,GET方法是HTTP中最简单的请求方式,常用于获取资源。在...

    Android HttpUrlConnection json使用方法

    总结来说,Android中的HttpUrlConnection是处理网络请求的重要工具,它可以方便地进行JSON数据的POST和GET操作。通过理解HTTP请求方法、设置请求头、处理响应以及解析JSON,开发者可以有效地与服务器交换数据。在...

    android get,post获取数据

    首先,GET和POST的主要区别在于它们的使用场景和数据传输方式。GET是幂等的,意味着多次执行同一个GET请求会得到相同的结果,它通常用于获取资源,且数据会附加到URL中,可见且有限制(一般不超过2048个字符)。POST...

    Android中使用HttpURLConnection实现GET POST JSON数据与下载图片

    小编刚刚用HttpURLConnection做了一个android的APP,不小心踩到了几个坑,总结下最常用的就通过HttpURLConnection来POST提交JSON数据与GET请求JSON数据。此外就是下载图片,下载图片分为显示进度与不显示进度两种。...

    java发送http/https请求(get/post)Demo,亲测可用

    这里我们将深入探讨如何使用Java发送GET和POST请求,以及处理JSON数据。 首先,让我们关注GET请求。GET请求主要用于从服务器获取资源,其参数通常包含在URL中。在Java中,可以使用`HttpURLConnection`类或者第三方...

    get 和post 实例

    在Android中,实现GET和POST请求,我们可以使用`HttpURLConnection`、`HttpClient`(已废弃但仍然可用)或者第三方库如Retrofit、Volley等。以下是一个基于HttpClient的简单示例: ```java // 创建HttpClient实例 ...

    android 后台 get和post请求数据

    在Android开发中,与服务器进行数据交互是必不可少的步骤,主要通过HTTP协议的GET和POST方法来实现。本文将深入探讨这两种方法以及如何在Android后台实现它们。 首先,GET和POST是HTTP协议中最常见的两种请求方法。...

Global site tag (gtag.js) - Google Analytics