将 Postman GET curl 转换为 swift url 会话请求
Convert Postman GET curl to swift url session request
我无法将以下 curl 转换为 swift 中的 url 请求。
curl --location --request GET 'https://p52.pocket52.com/apis/v1?p={%22x%22:%22images%22,%22pl%22:{}}'
我尝试了以下方法,但在展开可选值错误时意外发现 nil
var request = URLRequest(url: URL(string: "https://p52.pocket52.com/apis/v1?p={%22x%22:%22images%22,%22pl%22:{}}")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
我尝试了此 link
中的解决方案
但这是一个 POST curl 它不适用于 GET curl,因为 GET 请求不应包含正文。
让我定义的更清楚,基本上我需要构造如下GET请求。
https://p52.xxxx.com/apis/v1?p={"x":"images","pl":""}
我们可以通过为 URLComponent 部分附加一个 swift 字典来实现它,但是,听说我有一个嵌套字典,这是我面临困难的地方。
您可以像@Turo 建议的那样遵循 this answer,并使用 URLComponents
构建您的 URL
,如下所示:
var components = URLComponents(string: "https://p52.pocket52.com/apis/v1")
components?.queryItems = [
URLQueryItem(name: "p", value: #"{"x": "images", "pl" : ""}"#)
]
然后使用 URLComponents
的 url
属性 组成你的 URLRequest
:
guard let url = components?.url else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
我无法将以下 curl 转换为 swift 中的 url 请求。
curl --location --request GET 'https://p52.pocket52.com/apis/v1?p={%22x%22:%22images%22,%22pl%22:{}}'
我尝试了以下方法,但在展开可选值错误时意外发现 nil
var request = URLRequest(url: URL(string: "https://p52.pocket52.com/apis/v1?p={%22x%22:%22images%22,%22pl%22:{}}")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
我尝试了此 link
但这是一个 POST curl 它不适用于 GET curl,因为 GET 请求不应包含正文。
让我定义的更清楚,基本上我需要构造如下GET请求。
https://p52.xxxx.com/apis/v1?p={"x":"images","pl":""}
我们可以通过为 URLComponent 部分附加一个 swift 字典来实现它,但是,听说我有一个嵌套字典,这是我面临困难的地方。
您可以像@Turo 建议的那样遵循 this answer,并使用 URLComponents
构建您的 URL
,如下所示:
var components = URLComponents(string: "https://p52.pocket52.com/apis/v1")
components?.queryItems = [
URLQueryItem(name: "p", value: #"{"x": "images", "pl" : ""}"#)
]
然后使用 URLComponents
的 url
属性 组成你的 URLRequest
:
guard let url = components?.url else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"