Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
27_网络通信之通过GET和POST方式提交参数给web应用
-------------------------------------------------
1.把数据提交到web应用中:
应用的界面:
视频名称:
text框
时长:
text框
button:保存
b.当用户点击保存的时候,会把这两项参数,提交到web应用中.
----------------------
这个地址是用来测试的,当用户访问这个地址的时候,会在控制台上打印出:
视频名称:xiaofeng
时长:80
------------------------------
ManagerServlet
public class ManagerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String title= request.getParameter("title");
String timelength=request.getParameter("timelength");
System.out.println("视频名称:"+title);
System.out.println("时长:"+timelength);
}
说明可以正常接收参数.
---------------------------------------------------------
3.当数据小于2kb的时候,可以使用get,post方法往web应用传输数据,当数据大于2kb的时候
最好使用post方法传输数据,因为,很多服务器对地址栏传输的数据长度是有限制的,一般
为2kb,当大于2kb的时候,会截取.那么就会出现数据不能完全接收的情况
--------------------------------------------------------------------
4.a.把刚刚实现的android部署到模拟器上
b.打开tomcat服务器
c.在应用上填写参数点击保存
d.看控制台信息:
视频名称:xixi
时长:87
视频名称:
时长:87
e.问题:当输入中文的时候出现乱码
-------------------------------------------------------
5.乱码问题的解决:
a.乱码产生的原因:在提交时候,没有对中文参数进行URL编码
b.Tomcat服务器默认采用的事ISO8859-1编码得到的参数值
-----------------------------------------------------------
6.03-23 14:49:02.514: WARN/System.err(690): java.net.SocketException: Permission
denied
//权限不够,没有添加访问网络的权限.
-------------------------------------------
7.url.append(URLEncoder.encode(entry.getValue(), coding));//这样可以解决对中文
参数进行编码的问题.
----------------------------------
8.下面是使用android应用程序,利用get,set方法,给web服务器传送数据的所有代码
----------------------------------------------------------------------
11.在代码中:
String title= request.getParameter("title");
title=new String(title.getBytes("ISO8859-1"),"UTF-8") ;
如果程序中有大量的参数需要解码,那么会写很多这种代码,很麻烦,所以可以使用过滤器
进行处理
-------------------------------------------------
12.新建过滤器Filter,在项目名上,右键新建Filter,然后输入所在包名和类名(Filter名)
点击NEXT,在filter mapping标签下,点击Add,然后输入/*,表示对所有路径过滤
-----------------------------------------------------------------------------
2013-03-26
-----------------
1.编写过滤器,然后测试,首先执行web应用,然后运行android程序,输入点击提交后
将通过get方式给web应用传值.
-----------------------------------------------
2.在这个过程中使用源码如下:
a.新建Android项目:NewsGetSetManager
b./NewsGetSetManager/src/com/credream/newmanager/NewsGetSetManagerActivity.java
package com.credream.newmanager;
import com.credream.service.NewsService;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class NewsGetSetManagerActivity extends Activity {
/** Called when the activity is first created. */
private
EditText titleText;
EditText titleText;
private
EditText timelengthText;
EditText timelengthText;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
titleText=(EditText) this.findViewById(R.id.title);
timelengthText= (EditText)this.findViewById(R.id.timelength);
}
public void save(View v){
String title= titleText.getText().toString();
String length=timelengthText.getText().toString();
boolean result=NewsService.save(title,length);//用这样业务类,进行保存
if(result){
Toast.makeText(getApplicationContext(), R.string.success, 1).show();
}else {
Toast.makeText(getApplicationContext(), R.string.error, 1).show();
}
}
}
-------------------------------------------------------------------------------
c./NewsGetSetManager/src/com/credream/service/NewsService.java
package com.credream.service;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class NewsService
{
/**
* 保存数据
* @param title 标题
* @param length 时长
* @return
*/
public static boolean save(String title, String length)
{
String
Map<String, String> params=new HashMap<String, String>();
params.put("title", title);
params.put("timelength", length);
try{
//return sendGetRequest(path,params);
return sendGetRequest(path,params,"UTF-8");
}catch(Exception e){
e.printStackTrace();
}
return false;
}
title=xiaofeng&timelength=80
/**
* 发送GET请求
* @param path 请求路径
* @param params 请求参数
* @return 请求是否成功
* @throws Exception
*/
//private static boolean sendGetRequest(String path,Map<String, String>
params)throws Exception{
//没有修改前会出现乱码
private static boolean sendGetRequest(String path,Map<String, String>
params,String coding)throws Exception{
StringBuilder url=new StringBuilder(path);
url.append("?");
for(Map.Entry<String, String> entry:params.entrySet()){
url.append(entry.getKey()).append("=");
//url.append(entry.getValue());
url.append(URLEncoder.encode(entry.getValue(), coding));
//乱码的第一个因素,对传来的字符串进行编码
//
url.append("&");
}
url.deleteCharAt(url.length()-1);
HttpURLConnection conn=(HttpURLConnection)new URL(url.toString
()).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
return true;
}
return false;
}
}
----------------------------------------------------------------------
d./NewsGetSetManager/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.credream.newmanager"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".NewsGetSetManagerActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!--访问网络权限-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
---------------------------------------------------------------------------
e./NewsGetSetManager/res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/title" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/title"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/timelength" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numeric="integer"
android:id="@+id/timelength"
/>
<!-- android:numeric="integer",指定时长只能输入整形的数据 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:onClick="save"
android:id="@+id/button"
/>
<!-- android:id="@+id/button"当点击button的时候执行这个方法 -->
</LinearLayout>
-----------------------------------------------------------
f./NewsGetSetManager/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, NewsGetSetManagerActivity!</string>
<string name="app_name">利用getSet方法给web应用传值</string>
<string name="title">视频标题</string>
<string name="timelength">时长</string>
<string name="button">保存</string>
<string name="success">保存成功</string>
<string name="error">保存失败</string>
</resources>
-----------------------------------------------------------------------------
3.下面是web项目:
a.新建web项目:WebGetSetTest
b./WebGetSetTest/src/com/credram/servlet/ManagerServlet.java
package com.credram.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ManagerServlet
*/
public class ManagerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String title= request.getParameter("title");
//当使用了filter就没必要再转码了:
//title=new String(title.getBytes("ISO8859-1"),"UTF-8") ;
//1.这样可以使得tomcat改变以iso8859-1的编码对接收到的数据进行解码
.以解决乱码问题
String timelength=request.getParameter("timelength");
System.out.println("视频名称:"+title);
System.out.println("时长:"+timelength);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
---------------------------------------------------------
c./WebGetSetTest/src/com/credream/filter/EncodingFilter.java
package com.credream.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class EncodingFilter implements Filter {
public void destroy() {
// 销毁的时候调用
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//每一次请求到来的时候都会调用这个方法
HttpServletRequest req=(HttpServletRequest) request;
if("GET".equals(req.getMethod())){
EncodingHttpServletRequest wrapper=new
EncodingHttpServletRequest(req);
chain.doFilter(wrapper, response);
}else {
chain.doFilter(request, response);
}
//--request请求对象--->Filter--->wrapper包装后的request对象--
>servlet-->这时候调用的request是包装后的request
}
public void init(FilterConfig fConfig) throws ServletException {
// 当web应用启动的时候就会调用这个方法
}
}
--------------------------------------------------------------------------
d./WebGetSetTest/src/com/credream/filter/EncodingHttpServletRequest.java
package com.credream.filter;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class EncodingHttpServletRequest extends HttpServletRequestWrapper
{
private HttpServletRequest request;
public EncodingHttpServletRequest(HttpServletRequest request)
{
super(request);
this.request=request;
}
@Override
public String getParameter(String name)
{
String value=request.getParameter(name);
if(value!=null){
try
{
value=new String(value.getBytes("ISO8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
return value;
}
}
--------------------------------------------------------
e./WebGetSetTest/WebContent/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ;
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
id="WebApp_ID" version="2.5">
<display-name>VideoNews</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>ListServlet</display-name>
<servlet-name>ListServlet</servlet-name>
<servlet-class>com.credram.servlet.ListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ListServlet</servlet-name>
<url-pattern>/ListServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>ManagerServlet</display-name>
<servlet-name>ManagerServlet</servlet-name>
<servlet-class>com.credram.servlet.ManagerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ManagerServlet</servlet-name>
<url-pattern>/ManagerServlet</url-pattern>
</servlet-mapping>
<filter>
<filter-name>myfilter</filter-name>
<filter-class>com.credream.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
--------------------------
这样就可以完全解决这个问题.
-----------------------------------------------------------------
5.下面用post的方式给web项目传值:
-----------------------------------------
6.需要了解http协议.
-------------------------
7.这里可以通过http watch了解协议内容:
---------------------------------------------
HTTP协议详解之请求篇
http请求由三部分组成,分别是:请求行、消息报头、请求正文
1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下
:Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的
HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字
符)。
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获
取资源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF) //该CRLF表示消息报头已经结束,在此之前为消息报头
user=jeffrey&pwd=1234 //此行以下为提交的数据
HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信
息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得
到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以
及最近是否更新。
----------------------------------------------------------
7.用post方式给web项目传值的所有源码
-------------------------------------------------------------------
a.只需修改Android项目NewsGetSetManager中的这个类:
/NewsGetSetManager/src/com/credream/service/NewsService.java
package com.credream.service;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import android.media.MediaRecorder.OutputFormat;
import android.provider.ContactsContract.Contacts.Data;
public class NewsService
{
/**
* 保存数据
* @param title 标题
* @param length 时长
* @return
*/
public static boolean save(String title, String length)
{
String
Map<String, String> params=new HashMap<String, String>();
params.put("title", title);
params.put("timelength", length);
try{
//return sendGetRequest(path,params);
//return sendGetRequest(path,params,"UTF-8");
return sendPOSTRequest(path,params,"UTF-8");
}catch(Exception e){
e.printStackTrace();
}
return false;
}
/**
* 发送post请求
* @param path 请求路径
* @param params 请求参数
* @param string 编码
* @return 请求是否成功
* @throws Exception
*/
//----------------------------------------添加了这个类---------------------------
private static boolean sendPOSTRequest(String path,
Map<String, String> params, String coding) throws
Exception
{
//title=lidewei&timelength=90
StringBuilder data=new StringBuilder();
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry:params.entrySet()){
data.append(entry.getKey()).append("=");
//url.append(entry.getValue());
data.append(URLEncoder.encode(entry.getValue(), coding));
//乱码的第一个因素,对传来的字符串进行编码
data.append("&");
}
data.deleteCharAt(data.length()-1);
}
byte[] entity=data.toString().getBytes();//得到实体数据
HttpURLConnection conn= (HttpURLConnection) new URL(path).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);//允许
conn.setRequestProperty("Content-Type", "application/x-www-form-
urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entity.length));
OutputStream outputStream=conn.getOutputStream();
outputStream.write(entity);//数据写到了缓存中
//只有在我们取得响应的http协议的某个部分的时候,请求才会真正的发送出去.
if (conn.getResponseCode()==200)
{
return true;
}
return false;
}
//----------------------------------------添加了这个类------------end----------
title=xiaofeng&timelength=80
/**
* 发送GET请求
* @param path 请求路径
* @param params 请求参数
* @return 请求是否成功
* @throws Exception
*/
//private static boolean sendGetRequest(String path,Map<String, String>
params)throws Exception{
//没有修改前会出现乱码
private static boolean sendGetRequest(String path,Map<String, String>
params,String coding)throws Exception{
StringBuilder url=new StringBuilder(path);
url.append("?");
for(Map.Entry<String, String> entry:params.entrySet()){
url.append(entry.getKey()).append("=");
//url.append(entry.getValue());
url.append(URLEncoder.encode(entry.getValue(), coding));
//乱码的第一个因素,对传来的字符串进行编码
//
url.append("&");
}
url.deleteCharAt(url.length()-1);
HttpURLConnection conn=(HttpURLConnection)new URL(url.toString
()).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
return true;
}
return false;
}
}
--------------------------------------
b.修改web项目WebGetSetTest中的类:
/WebGetSetTest/src/com/credream/filter/EncodingFilter.java
package com.credream.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class EncodingFilter implements Filter {
public void destroy() {
// 销毁的时候调用
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//每一次请求到来的时候都会调用这个方法
HttpServletRequest req=(HttpServletRequest) request;
if("GET".equals(req.getMethod())){
EncodingHttpServletRequest wrapper=new
EncodingHttpServletRequest(req);
chain.doFilter(wrapper, response);
}else {
//--------------------------------------添加了这个部分解决乱码问题----------
req.setCharacterEncoding("UTF-8");
//--------------------------------------添加了这个部分解决乱码问题--------end--
//解决乱码问题
chain.doFilter(request, response);
}
//--request请求对象--->Filter--->wrapper包装后的request对象--
>servlet-->这时候调用的request是包装后的request
}
public void init(FilterConfig fConfig) throws ServletException {
// 当web应用启动的时候就会调用这个方法
}
}
-------------------------------------------------------------------------
8.可以用httpClient这个开源项目,来跟web应用打交道的话,那么会方便很多
但是理论上性能不如直接组拼http协议好,要访问cookie,session的时候,使用开源项目的
httpClient的时候,会提高开发速度.
------------------------------------------------------------------
9.使用httpClient进行post请求发送的源码:
a.需要修改android项目类中的代码:
/NewsGetSetManager/src/com/credream/service/NewsService.java
package com.credream.service;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.media.MediaRecorder.OutputFormat;
import android.provider.ContactsContract.Contacts.Data;
public class NewsService
{
/**
* 保存数据
* @param title 标题
* @param length 时长
* @return
*/
public static boolean save(String title, String length)
{
String
Map<String, String> params=new HashMap<String, String>();
params.put("title", title);
params.put("timelength", length);
try{
//return sendGetRequest(path,params);
//return sendGetRequest(path,params,"UTF-8");
//return sendPOSTRequest(path,params,"UTF-8");
return sendHttpClientRequest(path,params,"UTF-8");
}catch(Exception e){
e.printStackTrace();
}
return false;
}
/**通过httpClient的时候,发送post请求
*使用httpClient的时候,不需要导入jar文件,因为android,已经集成了这个功能
* @param path
* @param params
* @param string
* @return
* @throws IOException
*/
private static boolean sendHttpClientRequest(String path,
Map<String, String> params, String coding) throws
IOException
{
List<NameValuePair> pairs=new ArrayList<NameValuePair>();//存放请
求参数
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry:params.entrySet()){
pairs.add(new BasicNameValuePair(entry.getKey(),
entry.getValue()));
}
}
//采用
//编码
UrlEncodedFormEntity entity=new UrlEncodedFormEntity
(pairs,coding);
HttpPost httpPost=new HttpPost(path);
httpPost.setEntity(entity);
DefaultHttpClient client=new DefaultHttpClient();
//可以看做一个浏览器
HttpResponse response=client.execute(httpPost);
if (response.getStatusLine().getStatusCode()==200)
{
return true;
}
return false;
}
/**
* 发送post请求
* @param path 请求路径
* @param params 请求参数
* @param string 编码
* @return 请求是否成功
* @throws Exception
*/
private static boolean sendPOSTRequest(String path,
Map<String, String> params, String coding) throws
Exception
{
//title=lidewei&timelength=90
StringBuilder data=new StringBuilder();
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry:params.entrySet()){
data.append(entry.getKey()).append("=");
//url.append(entry.getValue());
data.append(URLEncoder.encode(entry.getValue(), coding));
//乱码的第一个因素,对传来的字符串进行编码
data.append("&");
}
data.deleteCharAt(data.length()-1);
}
byte[] entity=data.toString().getBytes();//得到实体数据
HttpURLConnection conn= (HttpURLConnection) new URL(path).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);//允许
conn.setRequestProperty("Content-Type", "application/x-www-form-
urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entity.length));
OutputStream outputStream=conn.getOutputStream();
outputStream.write(entity);//数据写到了缓存中
//只有在我们取得响应的http协议的某个部分的时候,请求才会真正的发送出去.
if (conn.getResponseCode()==200)
{
return true;
}
return false;
}
title=xiaofeng&timelength=80
/**
* 发送GET请求
* @param path 请求路径
* @param params 请求参数
* @return 请求是否成功
* @throws Exception
*/
//private static boolean sendGetRequest(String path,Map<String, String>
params)throws Exception{
//没有修改前会出现乱码
private static boolean sendGetRequest(String path,Map<String, String>
params,String coding)throws Exception{
StringBuilder url=new StringBuilder(path);
url.append("?");
for(Map.Entry<String, String> entry:params.entrySet()){
url.append(entry.getKey()).append("=");
//url.append(entry.getValue());
url.append(URLEncoder.encode(entry.getValue(), coding));
//乱码的第一个因素,对传来的字符串进行编码
//
url.append("&");
}
url.deleteCharAt(url.length()-1);
HttpURLConnection conn=(HttpURLConnection)new URL(url.toString
()).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
return true;
}
return false;
}
}