- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想创建 POST 方法的主体
Content-Type: application/x-www-form-urlencoded
我有一本字典
let params = ["key":"val","key1":"val1"]
我尝试使用 URLComponents
转换和转义字典。但是在HTTP规范中没有发现那些转义方式是一样的。
有人知道执行此操作的正确解决方案吗?
我看过
https://datatracker.ietf.org/doc/html/draft-hoehrmann-urlencoded-01
https://www.rfc-editor.org/rfc/rfc1866
最佳答案
你可以而且应该使用 NSURLComponents
创建正文:
let components = NSURLComponents()
components.queryItems = [
URLQueryItem(name: "key", value: "val"),
URLQueryItem(name: "key1", value: "val1")
]
if let query = components.query {
let request = NSMutableURLRequest()
request.url = ...
request.allHTTPHeaderFields = [ "Content-Type": "application/x-www-form-urlencoded"]
request.httpBody = query.data(using: .utf8)
}
NSURLComponents
从数据中创建有效的 URL,并将有效的 URL 解析为其组件。具有上述内容类型的 HTTP 发布请求的主体应包含作为 URL 查询的参数(请参阅 How are parameters sent in an HTTP POST request? )。
NSURLComponents
是一个不错的选择,因为它确保符合标准。
关于ios - 如何正确创建 httpBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921940/
我想创建 POST 方法的主体 Content-Type: application/x-www-form-urlencoded 我有一本字典 let params = ["key":"val","ke
我有; let parameters = [ "generalSearchInput": search, "requireAllWords":
概览 有2个URLRequest,一个有httpBody,一个没有httpBody。 然而,当比较时,它表明两者是相等的。 问题 这是预期的行为还是我遗漏了什么? 代码 let url = URL(s
我已将 Firebase 与我的 iOS 项目以及此处提到的所有必要步骤集成 https://firebase.google.com/docs/cloud-messaging/ios/client但它
这是我向服务器发送请求的操作。 let urlStr = "someurl" var request = URLRequest(url: URL(string: urlStr)!)
弄清楚了,见下文: 我正在尝试创建一个程序,可以将文本文件的内容快速传递给 http POST 请求。我正在存储在文本文件中运行的 API 查询的过滤器,并希望将它们作为 JSON 对象(?我认为,无
我想将另一个字典作为参数附加到 URLRequest 的 httpBody 请求模型: struct RequestModel: Encodable { let body: Body } st
我想使用 NSURLSessionUploadTask 和 fileUrl API 上传一个大文件。下面的代码是我写的上传一个大文件。我发现了这些问题: 在 -URLSession:task:didC
我正在创建一个演示 Web 服务代码而不使用 AFNetworking 框架。我的 HTTP Request Dictionary 中的参数。如何在 HTTPBody 上设置它? 我的代码如下 NSM
我正在尝试将项目的大部分使用 NSURLConnection 的 NSURLRequest 转换为 ASIHTTPRequest 调用。我遇到了关于在 ASIHTTPRequest 中设置 HTTPB
我正在使用名为“Poster”的 Firefox 工具来检查我的 Web 服务是否正常工作。当我发布请求时,我在要发送的内容中发送一个 JSON 对象(也调用 HTTP body data )。 当我
我正在尝试向 Twitter API 发送 POST 请求以获取 bearer_token 作为仅应用程序身份验证的一部分。我已经按照他们的文档 ( https://dev.twitter.com/o
我有我的 NSURLProtocol MyGreatProtocol。我将它添加到 URL 加载系统, NSURLProtocol.registerClass(MyGreatProtocol) 然后我
我需要使用 HTTPBody of Array 向我的服务器发送一个发布请求。这是我的参数数组: params = [ "message" : [
我正在向某个 URL 发帖,我的 webDev 告诉我需要设置 "data=" 作为参数,我的 JSONObject 作为键。我不知道如何将字符串设置为参数。 我尝试在 request.httpBod
如何使用 alamofire 多部分请求 Swift 打印 HTTPBody 现在我正在尝试使用下面的代码,但应用程序在此行崩溃 print("HTTP Body \(String(data: (re
我试图在 Objective-C 的 POST 请求上传递两个不同的参数。 第一个参数应该放在 Header 上,另一个应该放在 Body 上。 NSDictionary *headerParams
我正在对服务器进行 POST 调用,但 Alamofire 始终将正文作为 JSON 而不是作为编码的表单 URL 发送,我知道为了对正文进行编码,我必须插入 data(使用: .utf8, allo
我在请求中传递了 HTTPBody。但无法得到应有的回应。 下面是我的代码: NSURL *url = [NSURL URLWithString:@"https://sample.ios.com/l1
有没有一种方法可以使用 Combine 将对象编码为 urlRequest.httpBody 或从解码为具有特定错误类型的 AnyPublisher 返回错误。 我无法让它工作,而且似乎没有使用 co
我是一名优秀的程序员,十分优秀!