更新:找到解决方案.你可以在帖子的最后看到它.
我正在尝试使用远程REST API执行POST请求NSURLSession.我们的想法是使用两个参数发出请求:deviceId和textContent.
问题是服务器无法识别这些参数.服务器部分正常工作,因为我使用POSTMAN为Google Chrome发送了一个POST,它运行得很好.
这是我现在使用的代码:
NSString *deviceID = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceID"];
NSString *textContent = @"New note";
NSString *noteDataString = [NSString stringWithFormat:@"deviceId=%@&textContent=%@", deviceID, textContent];
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfiguration.HTTPAdditionalHeaders = @{
@"api-key" : @"API_KEY",
@"Content-Type" : @"application/json"
};
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
NSURL *url = [NSURL URLWithString:@"http://url_to_manage_post_requests"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPBody = [noteDataString dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPMethod = @"POST";
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WhatsApp的自定义URL方案发送一些带有URL的文本.为此目的,显然只有一个有效参数text:
NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"];
Run Code Online (Sandbox Code Playgroud)
当我想将自己的URL附加到该文本时,就会出现问题.我选择使用它编码它:
NSString *encodedURLString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)urlAbsoluteString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 ));
Run Code Online (Sandbox Code Playgroud)
该URL与文本一起发送到WhatsApp,但不会在WhatsApp方面解码:

有任何想法吗?谢谢!