使用XMLParsing swift库进行POST请求时遇到错误代码401
2019-1-14 7:34:2
收藏:0
阅读:101
评论:1
我正在测试使用Codable协议的XMLParsing库
XMLParsing库链接: https://github.com/ShawnMoore/XMLParsing
使用 https://openweathermap.org API
API链接为 " http://api.openweathermap.org/data/2.5/weather"
我的模型如下
struct weather:Codable {
let q : String
let appid : String
let mode : String
}
请求如下
var request = URLRequest(url: URL(string: "http://api.openweathermap.org/data/2.5/weather")!)
request.httpMethod = "POST"
let post2 = weather(q: "london", appid: "f4be702b940e5073d765cb2473f0b31b", mode: "xml")
do{
let body = try XMLEncoder().encode(post2, withRootKey: "current")
request.httpBody = body
} catch{}
let session = URLSession.shared
let task = session.dataTask(with: request) { data, response, error in
if error != nil {
print("error: \(String(describing: error))")// 处理错误信息
return
}
guard let data = data else {return }
print("response: \(response)")
print("data: \(data)")
}
task.resume()
我不知道问题出在哪里! 我一直得到401的错误代码
response: Optional(<NSHTTPURLResponse: 0x600003bdedc0> { URL: http://api.openweathermap.org/data/2.5/weather } { Status Code: 401, Headers {
"Access-Control-Allow-Credentials" = (
true
);
"Access-Control-Allow-Methods" = (
"GET, POST"
);
"Access-Control-Allow-Origin" = (
"*"
);
Connection = (
"keep-alive"
);
"Content-Length" = (
107
);
"Content-Type" = (
"application/json; charset=utf-8"
);
Date = (
"Mon, 14 Jan 2019 07:14:16 GMT"
);
Server = (
openresty
);
"X-Cache-Key" = (
"/data/2.5/weather?"
);
} })
data: 107 bytes
但在PostMan上它可以正常工作并获取当前数据
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?


我把它作为链接的参数并将请求更改为 GET 现在正常工作了
import UIKit import XMLParsing struct current:Codable { let city : City? } struct City:Codable { let id : String? } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let request = URLRequest(url: URL(string: "http://api.openweathermap.org/data/2.5/weather?q=london&appid=f4be702b940e5073d765cb2473f0b31b&mode=xml")!) let session = URLSession.shared let task = session.dataTask(with: request) { (data, response, error) in do{ guard (error == nil) else { print("There is error") return } guard let data = data else {return} let newData = try XMLDecoder().decode(current.self, from: data) print((newData.city?.id)!) }catch let error { print("there is error",error) } } task.resume() } }