本篇文章给大家谈谈app接口开发实例,以及手机APP接口设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享app接口开发实例的知识,其中也会对手机APP接口设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
新手开发android APP 直接给个接口怎么开发??
不需要。就是使用http协议app接口开发实例,
下面是使用截图app接口开发实例,看网络部分
更多问题解决办法请参考android学习手册,例子、源码、文档全部搞定,采用androidstudoapp接口开发实例的目录结构,360手机助手中下载。
这里只介绍如何使用HttpClient发起GET或者POST请求
GET 方式
Java代码
//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair params = new LinkedList<BasicNameValuePair();
params.add(new BasicNameValuePair("param1", "中国"));
params.add(new BasicNameValuePair("param2", "value2"));
//对参数编码
String param = URLEncodedUtils.format(params, "UTF-8");
//baseUrl
String baseUrl = "http://ubs.free4lab.com/php/method.php";
//将URL与参数拼接
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
POST方式
Java代码
//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二个参数"));
try {
HttpPost postMethod = new HttpPost(baseUrl);
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如何使用中国气象局API开发天气APP
前期的准备工作:
一、申请API(拿好appid和private_key)
二、解读《SmartWeatherAPI<Lite WebAPI版接口使用说明书》
三、准备好areaid、type、date、appid、urlencode($key)(注意,这里经加密的key是需要encodeurl之后的才能成为接口链接的一部分)
好了下面的编码开始:
1、从附件中的areaid_list中找到你想要的地方的areaid,并且选择要查询天气的类型
NSString *areaid = @"101010100";
NSString *type =
@"index_f";
/**
* 官方文档更新的数据类型号
* 指数:index_f(基础接口);index_v(常规接口)
3天预报:forecast_f(基础接口);forecast_v(常规接口)
*
*/
2、获得当前天气date
NSDate
*_date = [NSDate date];
NSDateFormatter *dateFormatter =
[[NSDateFormatter alloc] init];
[dateFormatter
setDateFormat:@"yyyyMMddHHmmss"];//注意日期的格式
NSString *date =
[[dateFormatter stringFromDate:_date]
substringToIndex:12];//用到的精确到分,24小时制60分钟制
3、申请的appid,和private_key
NSString *appid =
@"15ds45s13a465s";//这里是楼主随便输入的,瞎编的
NSString *private_key =
@"46s4ds_SmartWeatherAPI_45s44d6";//也是瞎编的
4、算出经过urlencode后的key,这步比较重要,步骤也多,请耐心看完。
在原来的的基础上是在PHP的环境中算出的,代码如下,可在“
http://writecodeonline.com/php/ ”下进行算法的检验
echo
urlencode(base64_encode(hash_hmac('sha1', " http://open.weather.com.cn/data/?areaid=101010100type=index_fdate=201409041509appid=15ds45s13a465s",
"46s4ds_SmartWeatherAPI_45s44d6",
TRUE)));
首先定义得到public_key和API的方法,还有就是对key进行encodeurl操作的方法
注意,这里的方法都是被我定义在getTime的类里面,后面是在main中实例化出来的
//获得publicky
- (NSString*)
getPublicKey:(NSString*)areaid :(NSString*)type :(NSString*)date
:(NSString*)appid {
NSString *Key = [[NSString alloc]
initWithFormat:@"http://open.weather.com.cn/data/?areaid=%@type=%@date=%@appid=%@",
areaid, type, [date substringToIndex:12], appid];
return
Key;
}
//获得完整的API
- (NSString*) getAPI:(NSString*)areaid
:(NSString*)type :(NSString*)date :(NSString*)appid :(NSString*)key
{
NSString *API = [[NSString alloc]
initWithFormat:@"http://open.weather.com.cn/data/?areaid=%@type=%@date=%@appid=%@key=%@",
areaid, type, [date substringToIndex:12], [appid substringToIndex:6],
key];
//-------------这里需要主要的是只需要appid的前6位!!!
return
API;
}
//将获得的key进性urlencode操作
- (NSString
*)stringByEncodingURLFormat:(NSString*)_key{
NSString *encodedString
= (__bridge NSString
*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)_key,
nil, (CFStringRef) @"!$'()*+,-./:;=?@_~%#[]",
kCFStringEncodingUTF8);
//由于ARC的存在,这里的转换需要添加__bridge,原因我不明。求大神讲解
return
encodedString;
}
重点来了,在oc下的算法如下,记得把附件的Base64.h
加进来并引用到工程里面
//对publickey和privatekey进行加密
- (NSString *)
hmacSha1:(NSString*)public_key :(NSString*)private_key{
NSData*
secretData = [private_key
dataUsingEncoding:NSUTF8StringEncoding];
NSData* stringData = [public_key
dataUsingEncoding:NSUTF8StringEncoding];
const void* keyBytes =
[secretData bytes];
const void* dataBytes = [stringData
bytes];
///#define CC_SHA1_DIGEST_LENGTH 20 /* digest
length in bytes */
void* outs =
malloc(CC_SHA1_DIGEST_LENGTH);
CCHmac(kCCHmacAlgSHA1, keyBytes,
[secretData length], dataBytes, [stringData length], outs);
//
Soluion 1
NSData* signatureData = [NSData dataWithBytesNoCopy:outs
length:CC_SHA1_DIGEST_LENGTH freeWhenDone:YES];
return
[signatureData
base64EncodedString];
}
这里只是初步算出来的key,还未encodeurl,链接不能被浏览器识别,所以现在经过算法得到的_key还有一步操作才能的到真正的key。
NSString *_key = [getTime hmacSha1:[getTime
getPublicKey:areaid :type :date :appid] :private_key];
NSString *key =
[getTime
stringByEncodingURLFormat:_key];
最后一步了吧!拼接API
NSString *weatherAPI = [getTime getAPI:areaid :type :date
:appid
:key];
//OK,我们的API就可以用啦。
最后,通过API返回的值是JSON文件,通过解析,就能得到我们想要的数据了,下面拿一个开发的接口举例
NSDictionary *weatherDic = [getTime
getWeatherDic:@"http://www.weather.com.cn/data/cityinfo/101010100.html"];
// weatherDic字典中存放的数据也是字典型,从它里面通过键值取值
NSDictionary
*weatherInfo = [weatherDic
objectForKey:@"weatherinfo"];
NSLog(@"今天是 %@ %@ %@ 的天气状况是:%@ %@ -
%@",[newDateOne substringWithRange:NSMakeRange(0, 4)],[newDateOne
substringWithRange:NSMakeRange(4, 2)] ,[newDateOne
substringWithRange:NSMakeRange(6, 2)],[weatherInfo
objectForKey:@"weather"],[weatherInfo objectForKey:@"temp1"],[weatherInfo
objectForKey:@"temp2"]);
输出:2014-09-04 23:40:23.243
WeatherAPP[5688:201108] 今天是 2014-09-04 的天气状况是:晴 17℃ - 30℃
weatherInfo字典里面的内容是---{"weatherinfo":{"city":"北京","cityid":"101010100","temp1":"17℃","temp2":"30℃","weather":"晴","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}}
App接口需求文档
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| mobile | string | 是 |手机号|
|password | string | 是 |密码|
| nickname| string | 是 |昵称|
| smsCode| string | 是 |验证码|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| mobile | string | 是 |手机号|
5.返回字段说明:
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| mobile | string | 是 |手机号|
|password | string | 是 |密码|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:delete
4.请求参数:session_id
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| page | string | 是 |页码|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| page | string | 是 |页码|
| type | string | 是 |商品类型|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| ID | string | 是 |商品ID|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| page | string | 是 |页码|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| type | string | 是 |订单类型|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| consignee | string | 是 |收货人|
| telephone_num | string | 是 |收货人电话|
| address | string | 是 |收货地址|
| goods_id | string | 是 |商品编号|
| goods_num | string | 是 |商品数量|
| order_price | string | 是 |订单金额|
| charges | string | 是 |运费|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:post
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| goods_id | string | 是 |商品编号|
| content | string | 是 |评论内容|
| score | string | 是 |评分|
| images | array | 否 |图片链接|
5.返回字段说明:
6.返回JSON实例
1.接口地址:
2.支持格式:json
3.请求方式:get
4.请求参数:
4.请求参数:
| 名称 | 类型 | 必填 |说明|
| -------- |:------:|: -----:|:--------:|
| goods_id | string | 是 |商品编号|
| page | string | 是 |页码|
5.返回字段说明:
6.返回JSON实例
怎么开发app软件?
谷歌推出的AppInventorAndroidApp开发工具可以让你仅通过拖拉式的简单操作就可以创建自己的AndroidApp。对于那些为了特定目的想要动手尝试开发一个简单应用的用户。
Android APP开发需求文档范本
软件需求文档格式的标准写法
1.引言
1.1 编写目的
· 阐明开发本软件的目的;
1.2 项目背景
· 标识待开发软件产品的名称、代码;
· 列出本项目的任务提出者、项目负责人、系统分析员、系统设计员、程序设计员、程序员、资料员以及与本项目开展工作直接有关的人员和用户;
· 说明该软件产品与其他有关软件产品的相互关系。
1.3 术语说明
列出本文档中所用到的专门术语的定义和英文缩写词的原文。
1.4 参考资料(可有可无)
列举编写软件需求规格说明时所参考的资料,包括项目经核准的计划任务书、合
同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品
的软件需求规格说明。
在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资
料来源。
2.项目概述
2.1 待开发软件的一般描述
描述待开发软件的背景,所应达到的目标,以及市场前景等。
2.2 待开发软件的功能
简述待开发软件所具有的主要功能。为了帮助每个读者易于理解,可以使用列表或
图形的方法进行描述。使用图形表示,可以采用:
· 顶层数据流图;
· 用例UseCase图;
· 系统流程图;
· 层次方框图。
2.3 用户特征和水平(是哪类人使用)
描述最终用户应具有的受教育水平、工作经验及技术专长。
2.4 运行环境
描述软件的运行环境,包括硬件平台、硬件要求、操作系统和版本,以及其他的软
件或与其共存的应用程序等。
2.5 条件与限制
给出影响开发人员在设计软件时的约束条款,例如:
· 必须使用或避免使用的特定技术、工具、编程语言和数据库;
· 硬件限制;
· 所要求的开发规范或标准。
3.功能需求
3.1 功能划分
列举出所开发的软件能实现的全部功能,可采用文字、图表或数学公式等多种方法
进行描述。
3.2 功能描述
对各个功能进行详细的描述。
4.外部接口需求
4.1 用户界面
对用户希望该软件所具有的界面特征进行描述。以下是可能要包括的一些特征:
· 将要采用的图形用户界面标准或产品系列的风格;
· 屏幕布局;
· 菜单布局;
· 输入输出格式;
· 错误信息显示格式;
建议采用RAD开发工具, 比如Visio,构造用户界面。
4.2 硬件接口
描述系统中软件产品和硬件设备每一接口的特征,以及硬件接口支持的设备、软件与硬件接口之间,以及硬件接口与支持设备之间的约定,包括交流的数据和控制信息的性质以及所使用的通信协议。
4.3 软件接口
描述该软件产品与其有关软件的接口关系,并指出这些外部软件或组件的名字和版本号。比如运行在什么操作系统上,访问何种类型的数据库,使用什么数据库连接组件,和什么商业软件共享数据等。
4.4 通信接口
描述和本软件产品相关的各种通信需求,包括电子邮件、Web浏览器、网络通信协议等。
4.5 故障处理
对可能的软件、硬件故障以及对各项性能而言所产生的后果进行处理。
5.性能需求
5.1 数据精确度
输出结果的精度。
5.2 时间特性
时间特性可包括如下几方面
·响应时间;
·更新处理时间;
·数据转换与传输时间;
·运行时间等。
5.3 适应性
在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,软件的适应能力。
6.其他需求
列出在本文的其他部分未出现的需求。如果不需要增加其他需求,可省略这一部分。
7.数据描述
7.1 静态数据
7.2 动态数据
包括输入数据和输出数据。
7.3 数据库描述
给出使用数据库的名称和类型。
7.4 数据字典
对于数据流图、层次方框图中出现的所有图形元素在数据字典中都要作为一个词条加以定义,使得每一个图形元素都有唯一的一个清晰明确的解释。
数据字典中所有的定义必须是严密的、精确的,不可有二意性。
7.5 数据采集
·列出提供输入数据的机构、设备和人员
·列出数据输入的手段、介质和设备;
·列出数据生成的方法、介质和设备。
8.附录
包括分析模型,待定问题图表等。
关于app接口开发实例和手机APP接口设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
app接口开发实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于手机APP接口设计、app接口开发实例的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~