使用会话从 url 获取 Json

Posted

技术标签:

【中文标题】使用会话从 url 获取 Json【英文标题】:Getting Json from url using session 【发布时间】:2017-11-05 12:44:58 【问题描述】:

我正在使用 xcode 9 beta 5。我试图解析 url。虽然基于 url 维护会话,但代码给出了语法错误。

 static func fetchFeatureApp()
        let urlString="http://ebmacs.net/ubereats/Api/all_product?id=1"
        URLSession.shared.dataTask(with: NSURLRequest(url: urlString))  (data, responce, error) in
            if error!=nil
            
                print(error)
                return

            
        .resume()
    

image description here

URLSession.shared.dataTask(with: NSURLRequest(url: urlString))  (data, responce, error) in

这行代码报错

无法将“字符串”类型的值转换为预期的参数类型“URL” 如何解决这个问题

如何消除此错误? 我访问过这个link

【问题讨论】:

【参考方案1】:

URLRequest 需要 URL 而不是 String,这就是错误消息的说明。

let urlString = "http://ebmacs.net/ubereats/Api/all_product?id=1"
let url = URL(string: urlString)!
URLSession.shared.dataTask(with: URLRequest(url: url))  (data, responce, error) in ...

访问了链接清楚地从字符串中创建了URL

但实际上,对于简单的 GET 请求,您不需要 URLRequest,只需传递 URL

let url = URL(string: "http://ebmacs.net/ubereats/Api/all_product?id=1")!
URLSession.shared.dataTask(with: url)  (data, responce, error) in ...

【讨论】:

【参考方案2】:

您好,这是我最喜欢的urlsession 下载代码,

var request = URLRequest(url: URL(string: "Your URL String")!)

request.httpMethod = "POST"
let session = URLSession.shared
session.dataTask(with: request) data, response, error in
     let parsedData = try JSONSerialization.jsonObject(with: data!) //if you want to convert to Json  
 .resume()

【讨论】:

以上是关于使用会话从 url 获取 Json的主要内容,如果未能解决你的问题,请参考以下文章

使用 AngularJS 从 JSON 响应中获取图像 url

使用 axios 从 json url 获取图像

用于从 api 获取 json 数据的 url 格式

Swift - 使用 SwiftyJSON 从 JSON 中获取字符串数组

从 URL 获取 JSON 文件并显示

使用可变变量从 Json url 获取值