soap简单介绍以及Android网络连接

先看GET和POST的区别:

(1)GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分

割URL和传输数据,多个参数用&连接;例如:login.action?

name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数

字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64

加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

  POST提交:把提交的数据放置在是HTTP包的包体中。

因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变。

(2)传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议

规范也没有对URL长度进行限制。

而在实际开发中存在的限制主要有:

GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。

对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统

的支持。

因此对于GET提交时,传输数据就会受到URL长度的限制。

POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交

数据大小进行限制,Apache、IIS6都有各自的配置。

(3)安全性:

.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不

是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的

Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登

录页面有可能被浏览器缓存, (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你

的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery

攻击

(4)Http get,post,soap协议都是在http上运行的
1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的
        查询字符串的长度受到web浏览器和web服务器的限制(如IE最多支持2048个字符

),不适合传输大型数据集同时,它很不安全
2)post:请求参数是在http标题的一个不同部分(名为entity body)传输的,这一部分

用来传输表单信息,因此必须将Content-type设置为:application/x-www-form-

urlencoded。post设计用来支持web窗体上的用户字段,其参数也是作为key/value对传输


      但是:它不支持复杂数据类型,因为post没有定义传输数据结构的语义和规则。
3)soap:是http post的一个专用版本,遵循一种特殊的xml消息格式
       Content-type设置为: text/xml   任何数据都可以xml化。

Android通过网络访问数据库,关于数据库用户名密码等信息不要借助http方式,因为http方式是明文的,其中的信息很容易被抓包获取。应该用https协议。

Android 的HttpURLConnection连接URL 要记得设置连接超时,如果网络不好,Android系统在超过默认时间会收回资源中断操作.

时间: 2024-12-30 03:49:27

soap简单介绍以及Android网络连接的相关文章

Android 网络连接判断与处理

Android网络连接判断与处理 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 1 public boolean isNetworkConnected(Context context) { 2     if (context != null) { 3    

Android网络连接判断与处理

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 1 public boolean isNetworkConnected(Context context) { 2 if (context != null) { 3 ConnectivityManager mConnectiv

怎样检查Android网络连接状态

在发送任何HTTP请求前最好检查下网络连接状态,这样可以避免异常.这个教程将会介绍怎样在你的应用中检测网络连接状态. 创建新的项目 1.在Eclipse IDE中创建一个新的项目并把填入必须的信息.  File->New->Android Project 2.创建新项目后的第一步是要在AndroidManifest.xml文件中添加必要的权限. 为了访问网络我们需要 INTERNET 权限 为了检查网络状态我们需要 ACCESS_NETWORK_STATE 权限 AndroidManifest

android 网络连接 wifi gprs的连接

package com.example.androidday15_network1; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo.State; import android.os.Bundle; import andr

Android 网络连接状态的监控

有些应用需要连接网络,例如更新后台服务,刷新数据等,最通常的做法是定期联网,直接使用网上资源.缓存数据或执行一个下载任务来更新数据. 但是如果终端设备没有连接网络,或者网速较慢,就没必要执行这些任务.可以使用ConnectivityManager检查是事联网以及当前是何种类型的网络.具体 代码如下: ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CON

WebView 的使用----android 网络连接处理分析

在Android中,可以有多种方式来实现网络编程: 创建URL,并使用URLConnection/HttpURLConnection 使用HttpClient 使用WebView 创建URL,并使用URLConnection/HttpURLConnection java.net.*下面提供了访问 HTTP 服务的基本功能.使用这部分接口的基本操作主要包括: 创建 URL 以及 URLConnection / HttpURLConnection 对象 1 设置连接参数 2 连接到服务器 3 向服务

Android 网络连接判断并进行相关处理

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接,没有则进入网络设置 /** * 检测网络是否连接 * @return */ private boolean checkNetworkState() { boolean flag = false; //得到网络连接信息 man

Android网络连接相关广播

新建一个类继承BroadcastReceiver,用于接收广播,并作相应的处理 class NetChangeReceiver extends BroadcastReceiver {     @Override     public void onReceive(Context context, Intent intent) {         String action = intent.getAction();         if (action.equals(ConnectivityMa

Android网络连接之HttpURLConnection和HttpClient

1.概念   HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection.但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活. 除此之外,在Android中,androidSDK中集成了Apache的HttpClient模块,用来提供高效的.最新的.功能丰富的支持 HTTP 协