[英]send HTTP PATCH request in iOS (Objective-c)
我正在使用REST API,其中一种API是PATCH
,我尝试使用以下代码来调用它,但会引发错误,而同一API在Postman
客户端中也可以工作。
+ (NSURLSessionTask *)callPATCHAPIWithAPIName:(NSString *)apiName andCompletionHandler:(void(^)(id result, NSInteger responseCode, NSError *error))completionHandler
{
NSString *getURL = @"192.168.1.100/UpdateDeviceInfo/iPhone6/OS 9.2";
NSURL *URL = [NSURL URLWithString:getURL];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:URL];
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfiguration.timeoutIntervalForRequest = 45.0f;
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
// Create Data from request
NSData *requestData = [NSData dataWithBytes: [@"" UTF8String] length:[@"" length]];
[request setHTTPMethod:@"PATCH"];
[request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:requestData];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error)
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSInteger responseCode = [httpResponse statusCode];
NSLog(@"response Code : %ld",(long)responseCode);
}];
[task resume];
return task;
}
[错误:错误域= NSURLErrorDomain代码= -1002“不支持的URL” UserInfo = {NSLocalizedDescription =不支持的URL,NSUnderlyingError = 0x14e86d490 {错误域= kCFErrorDomainCFNetwork代码= -1002“(null)”}}]]
我在查询字符串中而不是在请求正文中传递参数。 尽管同一件事在Postman
客户端和Android中也可以正常工作。
看来您在NSString *getURL = @"192.168.1.100/UpdateDeviceInfo/iPhone6/OS 9.2"
有一个空格NSString *getURL = @"192.168.1.100/UpdateDeviceInfo/iPhone6/OS 9.2"
我认为URL格式不支持空格! 相反,如果需要空格,请确保使用getURL = [getURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
为了处理网址字符串中的空格!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.