Я только что создал эту простую быструю функцию, которая может отправлять отзывы пользователей на веб-хук Discord, но у нее есть проблема. Функция в основном работает, ЕСЛИ в строке сообщения нет новой строки, из-за которой сообщение не отправляется. Может ли кто-нибудь мне там помочь?
Вот быстрая функция:
import SwiftUI
func sendFeedback(_ msg: String) {
if let url = URL(string: "full_weebhook_url") {
let json = """
{
"username": "\(Date.now.formatted(date: .long, time: .complete))",
"content": "\(msg)",
"embeds": [{
"fields": [
{
"name": "Device Name",
"value": "\(UIDevice.current.name)"
},
{
"name": "Device Model",
"value": "\(UIDevice.current.model)"
},
{
"name": "Device Operating System",
"value": "\(UIDevice.current.systemName)"
},
{
"name": "Device Operating System Version",
"value": "\(UIDevice.current.systemVersion)"
}
]
}]
}
"""
print(json)
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "content-type")
request.httpBody = json.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request)
task.resume()
}
}





Новая строка сама по себе не является допустимыми данными JSON. Ты можешь используйте новые строки в строке JSON, если вы избегаете новых строк.
Например:
msg.replacingOccurrences(of: "\n", with: "\\n")
либо во время звонка
sendFeedback(msg.replacingOccurrences(of: "\n", with: "\\n"))
или в твоем
"content": "\(msg.replacingOccurrences(of: "\n", with: "\\n"))"
Используйте аналогичный подход для других представлений линий new,
\r или \r\n
Большое спасибо. Я только что узнал, что когда вы включаете \n непосредственно в функцию, он обрезается, однако при отправке через текстовое поле все проходит безупречно.