当前位置:  编程技术>移动开发
本页文章导读:
    ▪Mars视频札记——HTTP操作1,2,3        Mars视频笔记——HTTP操作1,2,3 4-7 HTTP操作(一) 1 什么是HTTP协议 超文本传输协议 客户端和服务器端请求应答的标准 客户端浏览器或其他程序与Web服务器之间的应用层通信协议 无状态协.........
    ▪ Mars视频札记——Oauth认证(三)        Mars视频笔记——Oauth认证(三) 有了上面Oauth原理,HTTP操作,AsyncTask的基础 就可以在Android中进行认证的操作了   1 对Request Token进行授权 在retrieveRequestToken中有一个参数(第二个)是回调URL .........
    ▪ Mars视频札记——Oauth认证原理       Mars视频笔记——Oauth认证原理 想看一下AsyncTack的使用方法 记得写过什么 但是找了半天没找到 才发现原来一直没整理上来 关于Mars老师Android开发视频教程第四季的一些东西(关于腾讯微博项.........

[1]Mars视频札记——HTTP操作1,2,3
    来源: 互联网  发布时间: 2014-02-18
Mars视频笔记——HTTP操作1,2,3

4-7 HTTP操作(一)

1 什么是HTTP协议

超文本传输协议

客户端和服务器端请求应答的标准

客户端浏览器或其他程序与Web服务器之间的应用层通信协议

无状态协议

2 HTTP工作原理

建立连接

客户端发送请求

服务器端响应请求

断开连接

3 HTTP运行流程

请求报文格式:

请求行-通用信息头-请求头-实体头-报文主体

响应报文格式:

响应行-通用信息头-响应头-实体头-报文主体

4-8 HTTP操作(二)

1 Apache HTTP API 介绍

2 发送请求和接受响应的流程

		//生成一个请求对象
		HttpGet httpGet = new HttpGet("http://www.baidu.com");
		//生成一个Http客户端对象
		HttpClient httpClient = new DefaultHttpClient();
		//使用Http客户端发送请求对象
		HttpResponse httpResponse = httpClient.execute(httpGet); //该方法会返回一个HttpResponse对象
		//取出内容 代表一个Http消息
		HttpEntity httpEntity = httpResponse.getEntity();
		InputStream inputStream = httpEntity.getContent();
		//进行一些IO流的操作
		BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
		String result = "";
		String line = "";
		while((line = reader.readLine()) = null){
			result = result + line;
		}
		System.out.println(result);
		//...
		inputStream.close();

 

4-9 HTTP操作(三)

1 HTTP请求的方法

2 使用GET方法发送请求

get URL xxxxx?key=value&key=value...

剩下的操作和HTTP2中一样

url为拼上?key=value..之后的url

3 使用POST方法发送请求

		NameValuePair nameValuePair1 = new BasicNameValuePair("name",name); //name为读取的值
		NameValuePair nameValuePair2 = new BasicNameValuePair("age",age); //age为读取的值
		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
		nameValuePairs.add(nameValuePair1);
		nameValuePairs.add(nameValuePair2);
		//生成Entity对象
		HttpEntity requestHttpEntity = new UrlEncodedFormEntity(nameValuePairs);
		HttpPost httpPost = new HttpPost(url); //这里的url是baseUrl 不用拼上?key=value...
		httpPost.setEntity(requestEntity);
		//之后的操作一样
 

    
[2] Mars视频札记——Oauth认证(三)
    来源: 互联网  发布时间: 2014-02-18
Mars视频笔记——Oauth认证(三)

有了上面Oauth原理,HTTP操作,AsyncTask的基础 就可以在Android中进行认证的操作了

 

1 对Request Token进行授权

在retrieveRequestToken中有一个参数(第二个)是回调URL

该方法首先申请到一个未授权的requestToken 然后将appkey和secret存到comsumer 并返回用于授权的地址

通过uri 隐式启动Activity(打开了授权网页)

在完成了Oauth认证第二第二步以后(网页上点授权后),会访问callback的url(即第二个参数)

回调会启动manifest中配置了<data>匹配callback成功的Activity

例如<data android:scheme="x-oauthflow" android:host="callback" />

这里是一个比较特别的地方

2 获取Access Token

在启动新的Activity后

		public void onNewIntent(Intent intent){
			SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
			final Uri uri=intent.getData();
			if(uri!=null && uri.getScheme().equals(Constants.OAUTH_CALLBACK_SCHEME)){
				new RetrieveAccessTokenTask(this,consumer,provider,prefs).execute(uri);
			}
			finish();
		}
 

在Task中

通过uri.getQueryParameter(KEY); 得到键值对的值

通过provider.retrieveAccessToken(consumer,verifle)请求accessToken和accessTokenSecret 被放到了consumer对象中

将Token和TokenSecret记录到prefs中


    
[3] Mars视频札记——Oauth认证原理
    来源: 互联网  发布时间: 2014-02-18
Mars视频笔记——Oauth认证原理

想看一下AsyncTack的使用方法 记得写过什么 但是找了半天没找到 才发现原来一直没整理上来 关于Mars老师Android开发视频教程第四季的一些东西(关于腾讯微博项目)

 

4-2 OAuth认证原理

1 什么是OAuth

一种安全认证的协议

为用户资源的授权提供了一个安全、开放而又简易的标准

不会使第三方触及到用户的账号信息

http://www.oauth.net

2 OAuth当中的角色

ServiceProvider 服务提供者 通常是网站

User 用户 

Consumer 客户 比如应用程序

Protected Resources 被保护的资源

 

3 OAuth验证流程

 

以下是一个三角形的关系图 因为排版关系 自行想象一下两两之间的箭头指向

Service Provider

3 可以访问你的资源       2 请求访问用户的资源

 4 User授权访问               5 获得授权

User          1 请求服务           Consumer

  6 服务该用户

 

补上了一张图:


 

注意到用户提交密码是在第四步 而第三方Consumer从头至尾没有获得账号信息

1 Consumer ----request_token----> Service Provider

2 Service Provider ----grant request_token----> Consumer

3 Consumer ----redirect to auth page----> User

4 User ----authorize request_token----> Service Provider

5 Service Provider ----acknowledge authorization----> User

6 User ----redirect to consumer---->Consumer

7 Consumer ----access_token---->Service Provider

8 Service Provider ----grant access_token----> Service Provider

以上是Oauth的流程 官方的说明图如下


在视频讲义中 又分了两集介绍认证的过程 

其中Oauth认证一中提到了Oauth认证需要用到的几个关键URL

以腾讯微博为例:(其他也类似)

Request Token URL 获取未授权的Request Token的服务地址

https://open.t.qq.com/cgi-bin/request_token

User Authorization URL 获取用户授权的Request Token服务地址

https://open.t.qq.com/cgi-bin/authorize

Access Token URL 使用用户授权后的Request Token换取Access Token的服务地址

https://open.t.qq.com/cgi-bin/access_token

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
建站其它 iis7站长之家
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3