gpt4 book ai didi

.net - 无法从 Swift 访问 HttpPost Web Api

转载 作者:行者123 更新时间:2023-11-28 16:07:26 25 4
gpt4 key购买 nike

我有一个带有路由的 HttpPOST .Net WebApi:http://blah/api/CarValues?userId=1&carId=5&value=12.12。这个 webApi 发布在 Azure 上,我可以通过 Postman 调用它。但是,在我的 swift 应用程序内部,当我尝试将数据发布到此端点时,我得到了:

responseString = Optional("{\"Message\":\"找不到与请求 URI\'http://blah.net/api/CarValues\' 匹配的 HTTP 资源。\"}")

这是我当前的代码:

func postCarInfo() {
// Posts to cloud

var request = URLRequest(url: URL(string: webApiUrl)!)
request.httpMethod = "POST"
let postString = "userId=1&carId=5&value=200.00"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { // check for fundamental networking error
print("error=\(error)")
return
}

if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}

let responseString = String(data: data, encoding: .utf8)
print("responseString = \(responseString)")
}
task.resume()


}

我不确定为什么这不起作用。我已经尝试通过 postman 成功多次访问此端点,并且我可以访问 webApi 中的其他获取方法,但不能访问 Post 方法。我还设置了 NSAppTransportSecurity 以允许 NSAllowsArbitraryLoads,但我仍然无法访问端点。

任何帮助将不胜感激

最佳答案

也许这是相关的:

WebAPI - Attribute Routing POST not working with WebAPI Cors?

如果您将参数包含在路由中,则参数需要存在于 URL 中,而不是请求正文中。

试试这个:

let paramString = "userId=1&carId=5&value=200.00"
var request = URLRequest(url: URL(string: webApiUrl+"?"+paramString)!)
request.httpMethod = "POST"
let task = ...

关于.net - 无法从 Swift 访问 HttpPost Web Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com