`

HttpURLConnection 传递参数和隐藏流

阅读更多

今天改以前的程序,以前的程序如下:

	URL url = new URL(urlString);
	urlConnection = (HttpURLConnection) url.openConnection();

	urlConnection.setRequestMethod(method);
	urlConnection.setDoOutput(true);
	urlConnection.setDoInput(true);
                
	urlConnection.setUseCaches(false);
		if (propertys != null)
			for (String key : propertys.keySet()) {
				urlConnection.addRequestProperty(key, propertys.get(key));
			}

		if (method.equalsIgnoreCase("POST") && parameters != null) {
			// 模拟浏览器发送UTF-8编码的请求
			urlConnection.getOutputStream().write(parameters.getBytes("UTF-8"));
			urlConnection.getOutputStream().flush();
			urlConnection.getOutputStream().close();
		}

 这种情况下urlString是一个不含有参数的地址,比如“http://localhost:8080/xrap/servlet”。

情况出现了,我要在url中添加参数,这样在服务端可以用

request.getParameter("cmd");

 取到参数信息,但是当我把urlString变量变成“http://localhost:8080/xrap/servlet?cmd=2&mdn=xinxi”的时候,服务端却怎么也接收不到隐藏流(parameters )里写的东西了。没在url中加参数信息的时候是好用的。

后来将代码改成这样就即可以传参数,又能写隐藏流了:

	URL url = new URL(urlString);
	urlConnection = (HttpURLConnection) url.openConnection();

	urlConnection.setRequestMethod(method);
	urlConnection.setDoOutput(true);
	urlConnection.setDoInput(true);

	//下面两句是新加的
                urlConnection.setRequestProperty("accept", "text/xml;text/html");
                urlConnection.setRequestProperty("Content-Type",
                              "text/xml;charset=utf-8);

		urlConnection.setUseCaches(false);
		if (propertys != null)
			for (String key : propertys.keySet()) {
				urlConnection.addRequestProperty(key, propertys.get(key));
			}

		if (method.equalsIgnoreCase("POST") && parameters != null) {
			// 模拟浏览器发送UTF-8编码的请求
			urlConnection.getOutputStream().write(parameters.getBytes("UTF-8"));
			urlConnection.getOutputStream().flush();
			urlConnection.getOutputStream().close();
		}

 

 

1
0
分享到:
评论

相关推荐

    java笔记(20220104202019).pdf

    - 函数:定义函数,参数传递(值传递和引用传递),以及函数返回值。 2. **面向对象编程**: - 类与对象:类是对象的蓝图,对象是类的实例。类包含属性(字段)和行为(方法)。 - 继承:一个类可以继承另一个类...

    java讲义与总结大全(word版)

    - 方法:理解方法的定义、参数传递和返回值是编写复用代码的基础。 2. **面向对象编程**: - 类与对象:掌握如何定义类,创建和使用对象。 - 封装:通过访问修饰符实现数据隐藏。 - 继承:子类继承父类,获取其...

    java面向对象编程思想2版本+源代码 (孙卫琴)

    - 方法:定义和调用方法,参数传递,以及方法重载和重写。 3. **数组与集合框架** - 数组:一维、二维数组的创建、访问和操作。 - 集合框架:List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap...

    HttpRequest+Document读取xml+HtmlParse+AsyncTask

    解析后的数据可以作为参数传递给AsyncTask,在doInBackground()方法中处理数据。数据处理完成后,使用onPostExecute()更新ListView,同时隐藏ProgressBar。整个过程确保了用户界面的流畅性,不会因网络请求和解析而...

    为公司编写了一份JAVA考题。

    - **封装**:封装是面向对象编程的三大特性之一,通过访问修饰符实现数据隐藏和保护。 - **继承与多态**:Java支持单一继承,但可以通过接口实现多重继承的效果。多态性让代码更具灵活性,能够处理多种类型的数据...

    Java复习题(考试复习)

    - 函数:学习如何定义和调用函数,理解参数传递机制。 - 类与对象:掌握面向对象的基本概念,包括类的定义、对象的创建及方法。 2. **类与对象**: - 继承:理解子类继承父类的概念,以及super关键字的使用。 -...

    一些编程实例

    - **函数与方法**:定义和调用函数是程序的核心部分,可能涉及参数传递、返回值等概念。 - **异常处理**:try-catch-finally结构,用于捕获并处理程序运行时可能出现的错误。 2. **面向对象编程(OOP)**: - **...

    java学习教程——简洁易懂,一步步跟随即可上手学习

    - **方法定义与调用**:理解方法作为代码复用的单元,以及参数传递机制。 - **类与对象**:了解面向对象编程的基础,包括封装、继承和多态性。 2. **Java面向对象编程** - **类与对象**:深入理解类的定义、构造...

    JAVA相关资料

    - **方法**:封装一段可重用的代码,通过参数传递数据并返回结果。 4. **异常处理** - Java通过try-catch-finally语句块来捕获和处理程序运行时可能出现的错误,确保程序的健壮性。 5. **集合框架** - **...

    Java知识大全

    - **方法**:方法是代码的复用单元,通过定义函数实现特定功能,并可通过参数传递数据。 2. **面向对象** - **类与对象**:Java是面向对象的语言,类是对象的蓝图,对象是类的实例。 - **封装**:通过访问修饰符...

    中心和华为java面试题

    - 方法:理解方法的定义、参数传递、返回值等概念,以及重载和重写的区别。 2. **面向对象**: - 类与对象:了解类的定义、对象的创建及成员变量和方法的使用。 - 封装:封装是面向对象的三大特性之一,通过访问...

    JAVA课件 应该是大二时学的

    - **方法**:学习如何定义和调用方法,以及参数传递。 - **类与对象**:理解面向对象编程的基本概念,如封装、继承、多态。 - **异常处理**:学习如何使用try-catch-finally语句块进行错误处理。 2. **类与对象*...

    疯狂java讲义源码

    - 函数(方法):用于封装代码,实现特定功能,通过参数传递数据,返回结果。 2. **面向对象特性** - 封装:隐藏内部实现细节,对外提供公共接口。 - 继承:一个类继承自另一个类,获取父类的属性和方法,实现...

    JAVA程序设计教程(课件).

    理解参数传递机制和返回值类型至关重要。 2. **面向对象编程(OOP)** - **类与对象**:Java是面向对象的语言,学习如何定义类,创建对象,以及使用类的属性和方法是OOP的核心。 - **封装**:通过访问修饰符...

    struts2+Mysql搭建的服务端 +android 客户端 post,get请求

    POST请求则用于提交数据,如表单填写的内容,参数隐藏在请求体中,适合传递大量或敏感数据。 在Android开发中,使用HttpURLConnection或者第三方库如OkHttp,可以实现HTTP请求。对于GET请求,我们设置URL并打开连接...

    基于对称加密的简单单点登录系统sso

    在SSO系统中,对称加密可以帮助我们安全地传递和存储认证信息。常见的对称加密算法有DES、3DES、AES等,这里可能使用的是AES,因为它在安全性与效率之间取得了较好的平衡。 1. **系统架构**: - **认证中心...

    Android登陆get方式和post方式

    在Android中实现GET和POST方式登录,通常会用到`HttpURLConnection`或第三方库如`OkHttp`。以下是一个简单的`OkHttp` POST请求示例: ```java OkHttpClient client = new OkHttpClient(); FormBody.Builder builder...

    java课件,有助于java的学习

    理解参数传递、返回值以及重载的概念很重要。 6. **类库和API**:Java标准库提供了丰富的API,如集合框架(List、Set、Map)、IO流、多线程、网络编程等,学习并熟练使用这些工具能提升开发效率。 7. **集合框架**...

    Android用AsyncTask异步加载图片

    2. **重写doInBackground()**:在此方法中,通过`HttpURLConnection`或`OkHttp`等网络库获取图片的字节流,然后用`BitmapFactory`解析成Bitmap。 3. **重写onPostExecute()**:将加载好的Bitmap设置到ImageView或...

    Java解惑.pdf

    3. **方法与函数**:理解方法的定义、参数传递方式(值传递与引用传递的区别)以及返回值的处理。 4. **数组与集合**:数组是固定长度的数据存储结构,而集合(如List、Set、Map等)则提供了更灵活的数据管理机制。 ...

Global site tag (gtag.js) - Google Analytics