编辑代码

"refresh_token":"25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798
284651.282335-8574074",
  "expires_in": 2592000,
  "scope": "public_wise adapt",
  "session_key":"9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+
hfG9DQkpUVQdh4p6HbQcAiz5RmuBAjalJJGgIdJI",
  "access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.
282335-8574074",
  "session_secret":"dfac94a3489fe9fca7c3221cbf7525ff"
  }
  {
    "error": "invalid client",
    "error description": "unknown client id"
  }
  在获得access_token后,可以调用相关功能的API来完成该功能,如车型识别能力。
  # encoding:utf-8 
  import requests

  # client_id 为官网获取的AK, client secret 为官网获取的 SK
  host ='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_
credentials&client_id=【官网获取的 AK】&client_secret=【官网获取的 sK】'
  response = requests.get(host) 
  if response:
     print(response.json())

   #encoding:utf-8
   import requests 
   import base64
   ,,,
   车型识别
   ,,,  
   request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1 car"
   # 二进制方式打开图片文件
   f = open('[本地文件]''rb')
   img = mbase64.b64encode(f.read())

   params = ("image":img,"top num":5}
   access_token ='[调用鉴权接口获取的 token]'
   request_url = request_url + "?access_token=" + access_token
   headers = {'content-type': 'application/x-www-form-urlencoded')
   response = requests.post(request_url, data=params, headers=headers) 
   if response:
      print(response.json())
      返回的 JSON 数据:
       {
          "log_id": 4086212218842203806,
          "location result":{
            "width":447"top": 226,
            "height": 209,
            "left":188},
       }
       "result": [{
         "baike_info": {
         "baike_url":"http://baike.baidu.com/item/8E58B88838E588A8A08E88BF8AAChi
ron/20419512",
         "description":"布加迪Chiron是法国跑车品牌布加迪出品的豪华超跑车。配置四涡车
增压发动机,420公里每小时,有 23 种颜色的选择,售价高达 260 万美元。"
        },
        "score":0.98793351650238,
        "name":"布加迪Chiron""year":"无年份信息"
        },
        {
         "score":0.0021970034576952,
         "name":"奥迪RS5""year":"2011-2017"
         },
         {
          "score":0.0021096928976476, 
          "name":"奥迪RS4""year":"无年份信息"
         },
         {
          "score":0.0015581247862428,
          "name":"奥迪RS7""year":"2014-2016"
         },
         {
          "score":0.00082337751518935
          "name":"布加迪威航""year":"2004-2015"
         }],
        "color result":"颜色无法识别"
      }
6.1.2"Name": "Chen Zhifeng",
        "Profession" : "Teacher",
        "Age":46,
        "Email":"13402506301@163.com"
        "Friends": ["Zhang San","Li Si"]
        }

{
 "TeamName":"ioS-Orange-Team",
 "Teacher":"Chen Zhifeng",
 "Students":[
 { "Name": "Zhang Bo", "Hometown":"Xuzhou"},
 {"Name":" Chang Wenxiang ","Hometown":"Yancheng"}
 {"Name":" Hu Yinting","Hometown":"Suzhou"}
 ]
 }
 {
    "coord":{"lon":-0.13,"lat":51.51},
      "weather":[{"id":300,"main":"Drizzle","description":"light
intensity drizzle","icon":"09d"}],
    "base":"stations",
    "main":{
    "temp":280.32,
    "pressure":1012,
    "humidity":81,
    "temp min":279.15,
    "temp max":281.15
    },
    "visibility":10000,
    "wind" : {"speed":4.1,"deg":80},
    "clouds":{"all":90},
    "dt":1485789600,
    "sys":{
    "type":1,
    "id":5091,
    "message":0.0103,
    "country":"GB",
    "sunrise":1485762037,
    "sunset":1485794875
    },
    "id":2643743,
    "name" :"London",
    "cod":200
)
6.1.3
# myjson.js

module.exports = function() {
var data = { users: [] }
// Create 1000 users
for (var i = 0; i < 1000; i++) {
  data.users.push({ id: i, name: 'user' + i })
}
return data
}

# news.js
let Mock = require('mockjs');
let Random = Mock.Random;
module.exports = function() {
  var data ={
      news: []
  };
  var images = [1,2,3].map(x=>Rand dom.image('200x100', Random.color(), 
Random.word(2,6)));
  for (var i = 0; i< 100; i++) {
var content = Random.cparagraph(0,10); 
data.news.push({
    id:i,
    title: Random.cword(8,20),
    desc: content.substr(0,40), 
    tag:Random.cword(2,6),
    views:Random.integer(100,5000),
    images: images.slice(0,Random.integer(1,3))
    })
 }
return data
}
import UIKit
import Foundation

//url为MOCKMOCK服务器的网址
if let url = URL(string:"http://localhost:3004/news") {
   URLSession.shared.dataTask(with: url)(data, response, error) in
     if error != nil {
        print ("Network errors")
     }
     else {
       let rs = String(data: data!, encoding: String.Encoding.utf8)! 
       print(rs)
       if let json = try? JSONSerialization.jsonObject(with: data!,
options: .allowFragments) {
          print(json)
        }
     }
     .resume()
}
      6.2.1
func sessionGetData() {
        //创建URL对象
        let urlstring="http://www.tuling123.com/" 
        let urlmURL(stringurlString)
        //创建请求对象
        let request=URRequest(url: url!)

        let sessionm = URLSession.shared
        let dataTask = session.dataTask(with: request,
               completionHandler: {(data, response, error) -> Void in
                    if error != nill
                            print(error.debugDescription)
                    }else{
                            let str = String(data: data!,encoding:
String.Encoding.utf8)
                            print(str!)
        })as URLSessionTask
        //使用resume方法启动任务 
        dataTask.resume()
    }

func sessionDownloadImage(){
    //下载地址
    let url = URL(string: "http://hangge.com/blog/images/logo.png")
    //请求
    let request = URLRequest(url:url!)

    let session = URLSession.shared
    //下载任务
    let downloadTask = session.downloadTask(with: request,
                                            completionHandler: {
(location:URL?, response:URLResponse?, error:Error?)
                                                -> Void in
         //输出下载文件原来的存放目录
         print("location:\(String(describing: location))")
         //location位置转换
         let locationPath = location?.path

         //获取当前时间
         let now = NSDate()
         //当前时间的时间戳
         let timeInterval:TimeInterval = nowtimeIntervalSince1970 
         let timeStamp = String(timeInterval)
         //拷贝到用户目录 
         let documents:Str ing = NSHomeDirectory() + "/Documents/\
(timeStamp).png"
         //创建文件管理器
         let fileManager = FileManager.default 
         try! fileManager. noveItem(atPath: locationPath!, toPath:
documents)
         print("new locat ion:\(documents)")
       })

       //使用 resume方法启动任务 
       downloadTask.resume()
    }  

    $ sudo apachectl start | stop | restart

    #LoadModule php5_module libexec:/apache2/libphp5.scope

    $ sudo cp /etc/php.ini.defaule /etc/php.ini

    <?php
    phpinfo();
    ?>

    <?php
    /** php 接收流文件
    * @param String$file 接收后保存的文件名
    * @return boolean
    */
    function receivestreamFile($receiveFile){
         $streamData = isset($GLOBALS['HTTP_RAW POST_DATA'])? $GLOBALS['HTTP_
RAW_POST_DATA'] : '';

        if(empty($streamData)){
          $streamData = file get contents('php://input');
        }

       if($streamData!=''){
          $ret = file put contents($receiveFile, $streamData, true);
        }else{
           $ret=false;
        }

        return $ret;
    }
//定义服务器存储路径和文件名
$receiveFile = $_SERVER["DOCUMENT_ROOT"]."/uploadFiles/swift.png"; 
echo $receivefile;
$ret = receiveStreamFile($receiveFile);
echo json_encode(array('succe ss'=>(bool)$ret));

?>
func sessionUploadPhp(){
    //上传地址
    let url = URL(string:"http://localhost/uploadSwift.php")
    //1.创建会话对象
    let session  =URLSession.shared
    //请求
    var request = URLRequest(url:url!cachePolicy:reloadIgnoringCacheData) 
    request.httpMethod = "POST"
    //上传数据流
    let fileImage = Bundle.main.path(forResource:"beel",ofType:"png") 
    let imgData=try! Data(contentsOf: URL(fileURLWithPathfileImage!))

    let uploadTask= session.uploadTask(with: request as URLRequest, from:
imgData) {
           (data:Data?,response:URLResponse?,error:Error?) -> Void in
           //上传完毕后
            if error != nil{
               print(error!)
               }else{
               let str = Stringdata: data!, encoding: String.Encoding.utf8) 
               print("上传完毕: \(String(describing:str))")
              }
         }

   //使用resume方法启动任务 
   uploadTask.resume()
}

  import UIkit
  import Foundation

  let API_Key = "EIpAlhdD7i5152EsiNqpUoF"
  let Secret_Key = "p8E2Wg4agjDOxABmKvBYSNyZ1YzGFqb "

  let token_host = "https://aip.baidubce.com/oauth/2.0/token?grant 
type=client_credentials&client_id=\(API_Key)&client_secret=\(Secret_Key)"

  var access_token…"" 
  var expires_in : Int32 = 0

  if let url=URL(string: token host){
     URLSession.shared.dataTask(with: url) {(data,response,error) in
       if error != nil {
          print ("network error")
        }
        else {
            if let json = try? JSONSerialization.jsonObject(with: data!,
options:.allowFragments) as?[String :Any] {
               access token = json["access_token"] as! String 
               expires in = json["expires_in"] as! Int32 
               print("--------access_token------")
               print(access_token)
               print("--------expires_time------") 
               print(expires in)
           }
        }
    }
    .resume()
}
else {
     print ("url error")
}

//以文本或者二进制方式读入源程序文件的 Loader 
public struct Loader {
   static func readTxt(file url:URL) -> String? {
      do {
          let source = try String(contentsOf: url) 
          return source
      }
      catch {
          return nil
     }
}
static func readBin(file url:URL) -> Data? {
        do {
           let data = try Data(contentsOf: url) 
           return data
        }
         catch {
          return nil
       }
   }
}

//Resources中的文件,并把路径转化为 URL
let path = Bundle.main.path(forResource:"qrcar.jpg",ofType: nil) 
let url=URL(fileURLwithPath:path!)

let data=Loader.readBin(file:url)

if(data == nil) {
   print("File failed to load")
}
let data_base64 str = data?.base64EncodedString() 
let data_base64 = data?base64EncodedData()

access_token = "242ec96a68f74a8429b0f07869929413ae25920001598921312282335 
-21737249"
let carType_host = "https://aipbaidubce.com/rest/2.0/image-classify/v1/ 
car" + "?access token=" + "\(access token)"

if let url = URL(string: carType_host) {
    var request=URLRequest(url:url)
    request.setValue("application/x-www-form-urlencoded",forHTTPHeaderField:
"Content-Type")
    request.httpMethod = "POST"

    let cs = NSCharacterSet(charactersIn:"/=+8").inverted
    let image_urlEncode = data_base64str!addingPercentEncoding(withA
llowedCharacters: cs)
    let poststring = "image=\(image_urlEncode!)&topnum=5&baike num=1"

    request.httpBody=poststring.data(using:.utf8)

   URLSession.shared.dataTask(with:request){ (data,response, error) in
      if error != nil {
         print("error")
      }
      else {
        let rs = String(data: data!,encoding:String.Encoding.utf8) print(rs!)
        }
   }
   .resume()
}  
{
   "log_id": 4368540366187197442,
   "location result":
   {
   "width": 386.4585876464844,
   "top":81.3405532836914,
   "height":183.9795532226562,
   "left":58.03330230712891
   },
   "result": 
  [
     {
     "score":0.9767324924468994,
     "year":"2014-2017",
     "baike info":
     {
     "baike_url":"/item/8E58A58878E789189EE5/475143"
     "image_url":
          "/pic/5882b2b7d0a20cf47a91d7777c094b36acaf9910",
          "description":
              "2014款奇瑞E5是国内科技家轿的引领者,带领消费者悦享领先科技。
              },
    "name":"奇瑞E5"
    },
    {
    "score":0.007103727199137211,
    "name":"奇瑞旗云",
    "year":"2010-2013"
    },
    {
    "score":0.003686367534101009,
    "name":"奇瑞艾瑞泽7",
    "year":"2016-2017"
    },
    {
    "score": 0.001757977530360222,
    "name":"奇瑞 E3",
    "year":"2015-2017"
    },
    {
    "score":0.001047104829922318,
    "name":"奇瑞 A5",
    "year":"2015"
    }
    ],
     "color result":"黑色"
}