使用易客运提供的天气API开发IOS应用天气APP

目录

一、天气API官网

二、开发工具Xcode

三、教程开始(本片文章只介绍如何使用易客运API请求天气数据,演示项目仅一个获取天气功能)

 3.1 注册登陆天气API后台(新用户会有2000个测试豆)

 3.2 在Xcode中新建项目

3.2.1 选择APP

3.2.2 输入自己的项目名称等信息,这里使用的是Storyboard界面

 3.2.3 创建HttpSender,新建Swift文件。本次提供POST请求。

3.2.4 创建需要的实体类对象,方便解析JSON数据

3.2.5 在Main.storyboard文件添加组件。可以如下图所示,具体可以按照自己需求添加即可。


一、天气API官网

        免费天气API接口|天气预报接口|全球天气API接口|气象预警|空气质量

二、开发工具Xcode

三、教程开始(本片文章只介绍如何使用易客运API请求天气数据,演示项目仅一个获取天气功能)

 3.1 注册登陆天气API后台(新用户会有2000个测试豆)

通过获取appid以及appsecret 进行API数据请求

选择自己想要的数据接口,应该都可以获取,具体自己测试,我这边使用的是(专业七日天气接口v93)

 3.2 在Xcode中新建项目

3.2.1 选择APP

3.2.2 输入自己的项目名称等信息,这里使用的是Storyboard界面

 3.2.3 创建HttpSender,新建Swift文件。本次提供POST请求。

//
//  HttpSender.swift
//  Weather
//
//  Created by Qingchen on 2022/5/3.
//

import Foundation

class HttpSender {
    //JSON 解析器
    private static let decoder = JSONDecoder()
    
    //http-post请求
    /**
        T : 范型
        urlString : 请求url地址
        params:传递参数
        callback :回掉
     */
    public static func post<T: Decodable>(_ type: T.Type, _ urlString: String, _ params: [String:String], _ callback: @escaping (T?) -> Void) {
            //传递参数
            var query = ""
            for (key, value) in params {
                query += "\(key)=\(value)&"
            }
            query.removeLast()
            //调用post请求
            post(type, urlString, query, callback)
        }

    public static func post<T: Decodable>(_ type: T.Type, _ urlString: String, _ params: String, _ callback: @escaping (T?) -> Void) {
            // Prepare URL
        let url = URL(string: urlString)
        guard let requestUrl = url else { fatalError() }
        // Prepare URL Request Object
        var request = URLRequest(url: requestUrl)
        request.httpMethod = "POST"

        // HTTP Request Parameters which will be sent in HTTP Request Body
        // Set HTTP Request Body
        request.httpBody = params.data(using: String.Encoding.utf8);
            // Perform HTTP Request
        let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
            // Check for Error
            if let error = error {
                print("Error took place 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值