- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 Objective-C 的 POST 请求上传递两个不同的参数。
第一个参数应该放在 Header 上,另一个应该放在 Body 上。
NSDictionary *headerParams = [NSDictionary dictionaryWithObjectsAndKeys:
@"password", @"grant_type",
@"write", @"scope", nil];
NSDictionary *bodyParams = [NSDictionary dictionaryWithObjectsAndKeys:
username, @"username",
password, @"password", nil];
AFHTTPRequestSerializer *r = [AFHTTPRequestSerializer serializer];
NSError *error = nil;
NSData *requestBody = [NSKeyedArchiver archivedDataWithRootObject:bodyParams];
NSMutableURLRequest *request = [r requestWithMethod:@"POST" URLString:urlString parameters:headerParams error:&error];
[request setValue:[NSString stringWithFormat:@"application/json,application/x-www-form-urlencoded"] forHTTPHeaderField:@"Accept"];
[request setValue:[NSString stringWithFormat:@"application/x-www-form-urlencoded"] forHTTPHeaderField:@"ContentType"];
[request setHTTPBody: requestBody]; //--> If I comment this, the headerParams doesn't removed
如果我用这条语句调试上面的代码:
po [[NSString alloc] initWithData: request.HTTPBody encoding:4]
我得到了 nil
。但是当我省略 [request setHTTPBody: requestBody];
的部分时,我得到了 headerParams
的值。我想获得 headerParams
和 bodyParams
的值。怎么了?谢谢。
最佳答案
通过查看 documentation for AFHTTPRequestSerializer关于parameters
参数:
parameters
The parameters to be either set as a query string for GET requests, or the request HTTP body.
您认为将进入请求 header 的字典实际上将进入其正文。代码最后一行的 setHTTPBody:
调用将覆盖该值。
如果您希望第一个 headerParams
字典转到请求 header ,您需要使用 setValue:forHTTPHeaderField:
。
关于ios - NSMutableURLRequest 设置 HttpBody 移除 Header Parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737087/
我想创建 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
我是一名优秀的程序员,十分优秀!