今天改以前的程序,以前的程序如下:
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();
}
分享到:
相关推荐
- 函数:定义函数,参数传递(值传递和引用传递),以及函数返回值。 2. **面向对象编程**: - 类与对象:类是对象的蓝图,对象是类的实例。类包含属性(字段)和行为(方法)。 - 继承:一个类可以继承另一个类...
- 方法:理解方法的定义、参数传递和返回值是编写复用代码的基础。 2. **面向对象编程**: - 类与对象:掌握如何定义类,创建和使用对象。 - 封装:通过访问修饰符实现数据隐藏。 - 继承:子类继承父类,获取其...
- 方法:定义和调用方法,参数传递,以及方法重载和重写。 3. **数组与集合框架** - 数组:一维、二维数组的创建、访问和操作。 - 集合框架:List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap...
解析后的数据可以作为参数传递给AsyncTask,在doInBackground()方法中处理数据。数据处理完成后,使用onPostExecute()更新ListView,同时隐藏ProgressBar。整个过程确保了用户界面的流畅性,不会因网络请求和解析而...
- **封装**:封装是面向对象编程的三大特性之一,通过访问修饰符实现数据隐藏和保护。 - **继承与多态**:Java支持单一继承,但可以通过接口实现多重继承的效果。多态性让代码更具灵活性,能够处理多种类型的数据...
- 函数:学习如何定义和调用函数,理解参数传递机制。 - 类与对象:掌握面向对象的基本概念,包括类的定义、对象的创建及方法。 2. **类与对象**: - 继承:理解子类继承父类的概念,以及super关键字的使用。 -...
- **函数与方法**:定义和调用函数是程序的核心部分,可能涉及参数传递、返回值等概念。 - **异常处理**:try-catch-finally结构,用于捕获并处理程序运行时可能出现的错误。 2. **面向对象编程(OOP)**: - **...
- **方法定义与调用**:理解方法作为代码复用的单元,以及参数传递机制。 - **类与对象**:了解面向对象编程的基础,包括封装、继承和多态性。 2. **Java面向对象编程** - **类与对象**:深入理解类的定义、构造...
- **方法**:封装一段可重用的代码,通过参数传递数据并返回结果。 4. **异常处理** - Java通过try-catch-finally语句块来捕获和处理程序运行时可能出现的错误,确保程序的健壮性。 5. **集合框架** - **...
- **方法**:方法是代码的复用单元,通过定义函数实现特定功能,并可通过参数传递数据。 2. **面向对象** - **类与对象**:Java是面向对象的语言,类是对象的蓝图,对象是类的实例。 - **封装**:通过访问修饰符...
- 方法:理解方法的定义、参数传递、返回值等概念,以及重载和重写的区别。 2. **面向对象**: - 类与对象:了解类的定义、对象的创建及成员变量和方法的使用。 - 封装:封装是面向对象的三大特性之一,通过访问...
- **方法**:学习如何定义和调用方法,以及参数传递。 - **类与对象**:理解面向对象编程的基本概念,如封装、继承、多态。 - **异常处理**:学习如何使用try-catch-finally语句块进行错误处理。 2. **类与对象*...
- 函数(方法):用于封装代码,实现特定功能,通过参数传递数据,返回结果。 2. **面向对象特性** - 封装:隐藏内部实现细节,对外提供公共接口。 - 继承:一个类继承自另一个类,获取父类的属性和方法,实现...
理解参数传递机制和返回值类型至关重要。 2. **面向对象编程(OOP)** - **类与对象**:Java是面向对象的语言,学习如何定义类,创建对象,以及使用类的属性和方法是OOP的核心。 - **封装**:通过访问修饰符...
POST请求则用于提交数据,如表单填写的内容,参数隐藏在请求体中,适合传递大量或敏感数据。 在Android开发中,使用HttpURLConnection或者第三方库如OkHttp,可以实现HTTP请求。对于GET请求,我们设置URL并打开连接...
在SSO系统中,对称加密可以帮助我们安全地传递和存储认证信息。常见的对称加密算法有DES、3DES、AES等,这里可能使用的是AES,因为它在安全性与效率之间取得了较好的平衡。 1. **系统架构**: - **认证中心...
在Android中实现GET和POST方式登录,通常会用到`HttpURLConnection`或第三方库如`OkHttp`。以下是一个简单的`OkHttp` POST请求示例: ```java OkHttpClient client = new OkHttpClient(); FormBody.Builder builder...
理解参数传递、返回值以及重载的概念很重要。 6. **类库和API**:Java标准库提供了丰富的API,如集合框架(List、Set、Map)、IO流、多线程、网络编程等,学习并熟练使用这些工具能提升开发效率。 7. **集合框架**...
2. **重写doInBackground()**:在此方法中,通过`HttpURLConnection`或`OkHttp`等网络库获取图片的字节流,然后用`BitmapFactory`解析成Bitmap。 3. **重写onPostExecute()**:将加载好的Bitmap设置到ImageView或...
3. **方法与函数**:理解方法的定义、参数传递方式(值传递与引用传递的区别)以及返回值的处理。 4. **数组与集合**:数组是固定长度的数据存储结构,而集合(如List、Set、Map等)则提供了更灵活的数据管理机制。 ...